根據(jù)SVN相關(guān)目錄中的 .f 文件里面的內(nèi)容來(lái)打包,并ci到另一個(gè)SVN,然后再發(fā)郵件給指定人員。
創(chuàng)新互聯(lián)專注于源城企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都做商城網(wǎng)站。源城網(wǎng)站建設(shè)公司,為源城等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)腳本如下:
#!/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 = <<END_OF_MESSAGE From: SVN <sync.svn@163.com> 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=<<EOF Usage: ./script ci path tar_name comment EOF puts help end def checkout(path,tmp_dir,ser) FileUtils.mkdir tmp_dir Dir::chdir(tmp_dir) `svn co "#{ser + path.split("TEST")[-1]}"` end def create_tar_list(tmp_dir) #get xxx.f file_path_name = [] tar_list = [] Find.find(tmp_dir) { |x| if File.basename(x) == x.split('/')[-2] + ".f" file_path_name << x else next end } #get need tar file list true_path = '' tmp_line = [] file_path_name.length.times { |x| # file_path_name /tmp/svn_tmp_dir/RTL/include/include.f File.open(file_path_name[x],'r').each { |line| if line.strip.match(/^\/\//) # ^// next elsif line.strip.match(/^\.|^\w+/) if line.match(/\/\//) tmp_line = line.strip.split('//')[0].rstrip.split('/') else tmp_line = line.strip.split('/') end tmp_line.delete('.') tmp_line.delete('..') true_path = File.join((file_path_name[x].split('/')[3..-2] + tmp_line).uniq) tar_list << true_path if File.exist?(true_path) else next end } } writefile(tar_list.uniq,tmp_dir) end def writefile(str,tmp_dir) aFile = File.new(tmp_dir + "/tar.list","w") aFile.puts str aFile.close end case ARGV[0] when "ci" olddir = Dir.pwd if `[ -d .svn ] && grep "TEST-REL" .svn/* | wc -l`.to_i == 0 puts "Not SVN Work Dir OR Not SVN Release Work Dir" exit end #hwasvn ci TEST/Code TarName comment ARGV[1].match(/\/$/) ? path = ARGV[1][0..-2] : path = ARGV[1] checkout(path,svn_tmp_dir,svn_server) create_tar_list(svn_tmp_dir) Dir::chdir(svn_tmp_dir) tar_name = "#{ARGV[2]}.tar.bz2" `tar -jc -T tar.list -f #{tar_name}` FileUtils.mv tar_name, olddir Dir::chdir(olddir) result = `svn ci #{tar_name} -m "#{ARGV[3]}" 2>&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
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。
分享名稱:Ruby_SVN打包腳本-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article8/jspop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、移動(dòng)網(wǎng)站建設(shè)、云服務(wù)器、微信公眾號(hào)、靜態(tài)網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容