您的位置:首页 > 编程语言 > Ruby

rubyzip的使用

2015-10-19 14:07 393 查看
呼,今天开始3天都是新人培训,总算可以抽点时间发一帖。

现在在做的东西直接用Maven就能打包成war文件。在自己机上部署测试时,本来就这样拷贝到JBoss的deploy目录下也行,不过有些HTML啊JavaScript啥的为了方便修改,所以还是想把war包解开再扔到deploy目录下。我已经数不清上周我重复做过多少次在项目目录跟JBoss的deploy目录之间拷贝文件,把war后缀改成zip,解压,删zip文件,把目录名加上.war,……

这种事情还是让脚本来做的好。当然这事情直接写bat文件或者shell脚本也能行,不过我想试试rubyzip这个gem,就顺便练手了。

先安装rubyzip:

Command prompt代码


gem install rubyzip

然后是Ruby脚本本身:

Ruby代码


#!/usr/bin/env ruby

require 'rubygems'

require 'fileutils'

require 'zip/zip'

require 'zip/zipfilesystem'

include FileUtils

def unzip zip_file, dest_dir

Zip::ZipFile.open zip_file do |zf|

zf.each do |e|

path = File.join dest_dir, e.name

mkdir_p File.dirname(path)

zf.extract(e, path) { true }

end

end

end

def deploy war_file, dest_dir

dest = File.join dest_dir, File.basename(war_file)

rm_rf dest if File.directory? dest

unzip war_file, dest

end

# SRC_DIR = File.expand_path '.'

DEST_DIR = 'D:/server/jboss-4.2.2.GA/server/default/deploy'

[

'alpha/alpha.war',

'beta/beta.war'

].each {|war_file| deploy war_file, DEST_DIR }

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

我或许该用Python来写这个的,标准库里就有zip T T
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ruby rubyzip