189 8069 5689

Ruby_SVN打包脚本-创新互联

根据SVN相关目录中的 .f 文件里面的内容来打包,并ci到另一个SVN,然后再发邮件给指定人员。

创新互联专注于源城企业网站建设,成都响应式网站建设公司,成都做商城网站。源城网站建设公司,为源城等地区提供建站服务。全流程按需开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

脚本如下:

#!/usr/bin/ruby
require 'net/smtp'
require 'fileutils'
require 'find'
svn_server = "http://192.168.1.5/svn/TEST"
to_mail = "/home/test/maillist.txt" #mail address list
svn_tmp_dir = "/tmp/tmp." + rand(99999).to_s
def mailer(mailadd,modules,comment,version,tar_name,size,ci_time)
File.open(mailadd,'r').each {|dst|
msgstr = <
To: #{dst.chomp}
Subject: SVN_Release
Module:  #{modules}
Comment: #{comment}
Version: #{version}
TarName: #{tar_name}
TarSize: #{size}
CiTime: #{ci_time}
END_OF_MESSAGE
    acct = 'sync.svn@163.com'
    domain = "163.com"
    pass = '123123'
    Net::SMTP.start('smtp.163.com', 25, domain, acct, pass, :login) { |smtp|
        smtp.send_message msgstr,'sync.svn@163.com',dst.chomp
    }
    #Net::SMTP.start(server, port, domain, acct, passwd, authtype)
}
end
def usage
help=<&1`     
        if result.match(/not under/)
            `svn add #{tar_name}`
            result = `svn ci #{tar_name} -m "#{ARGV[3]}"` 
        end
        mailer(to_mail,path,ARGV[3],result.split[-1][0..-2],tar_name,File.size(tar_name),Time.now.strftime("%Y/%m/%d %H:%M")) 
        FileUtils.rm tar_name, :force => true
        FileUtils.remove_dir(svn_tmp_dir)
    else usage
end

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


当前名称:Ruby_SVN打包脚本-创新互联
文章出自:http://cdxtjz.cn/article/jspop.html

其他资讯