Ruby_SVN打包脚本

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

创新互联是一家专业提供高密企业网站建设,专注与成都网站建设、成都做网站、H5建站、小程序制作等业务。10年已为高密众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

脚本如下:

#!/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

分享题目:Ruby_SVN打包脚本
标题链接:http://hbruida.cn/article/isjggh.html