rubyzip的使用

呼,今天开始3天都是新人培训,总算可以抽点时间发一帖。 
现在在做的东西直接用Maven就能打包成war文件。在自己机上部署测试时,本来就这样拷贝到JBoss的deploy目录下也行,不过有些HTML啊JavaScript啥的为了方便修改,所以还是想把war包解开再扔到deploy目录下。我已经数不清上周我重复做过多少次在项目目录跟JBoss的deploy目录之间拷贝文件,把war后缀改成zip,解压,删zip文件,把目录名加上.war,…… 
这种事情还是让脚本来做的好。当然这事情直接写bat文件或者shell脚本也能行,不过我想试试 rubyzip 这个gem,就顺便练手了。 

先安装rubyzip: 
Command prompt代码   收藏代码
  1. gem install rubyzip  


然后是Ruby脚本本身: 
Ruby代码   收藏代码
  1. #!/usr/bin/env ruby  
  2.   
  3. require 'rubygems'  
  4. require 'fileutils'  
  5. require 'zip/zip'  
  6. require 'zip/zipfilesystem'  
  7.   
  8. include FileUtils  
  9.   
  10. def unzip zip_file, dest_dir  
  11.   Zip::ZipFile.open zip_file do |zf|  
  12.     zf.each do |e|  
  13.       path = File.join dest_dir, e.name  
  14.       mkdir_p File.dirname(path)  
  15.       zf.extract(e, path) { true }  
  16.     end  
  17.   end  
  18. end  
  19.   
  20. def deploy war_file, dest_dir  
  21.   dest = File.join dest_dir, File.basename(war_file)  
  22.   rm_rf dest if File.directory? dest  
  23.   unzip war_file, dest  
  24. end  
  25.   
  26. # SRC_DIR = File.expand_path '.'  
  27. DEST_DIR = 'D:/server/jboss-4.2.2.GA/server/default/deploy'  
  28.   
  29. [  
  30.   'alpha/alpha.war',  
  31.   'beta/beta.war'  
  32. ].each {|war_file| deploy war_file, DEST_DIR }  

rubyzip的API据说是模仿java.util.zip而来的。呃,真不算方便。把整个文件解压到指定路径这种这么常用的功能居然没有便捷方法直接做,太不爽了。还有啥别的Ruby能用的zip库不,拜托大家推荐几个~ 

我或许该用Python来写这个的,标准库里就有zip T T
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值