`
RednaxelaFX
  • 浏览: 3053243 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

小试rubyzip的一个脚本

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

先安装rubyzip:
gem install rubyzip


然后是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
分享到:
评论
5 楼 ray_linn 2010-02-05  
最好还是system("7za...")
4 楼 RednaxelaFX 2009-11-17  
花花公子 写道
zip本身就是win移植过来的,确实jar和open document用zip很奇怪,应该用gzip或者bzip2的

ZIP也算是业界的de facto标准的一例了 =_=
当年Phil Katz不满ARC不让他实现兼容ARC格式的归档管理器才写了ZIP,并且公开了ZIP格式。这比Windows流行早多了……嗯不过PKZIP一开始就是DOS程序没错。
3 楼 RednaxelaFX 2009-11-17  
lwwin 写道
WINDOWS的BAT如何打包ZIP呢……,好像系统虽然可以解包,但是没有内置的ZIP吧?^^

嘛,有各种办法的嘛。我用Ruby也装了额外的库,那写bat也不是说就不能用别的依赖了……例如说装个7-zip就万事大吉,需要的命令行解压程序就有了。
2 楼 lwwin 2009-11-17  
WINDOWS的BAT如何打包ZIP呢……,好像系统虽然可以解包,但是没有内置的ZIP吧?^^
1 楼 花花公子 2009-11-17  
zip本身就是win移植过来的,确实jar和open document用zip很奇怪,应该用gzip或者bzip2的

相关推荐

    Vray中文版基础视频教程下载课程素材06-牛刀小试.zip

    《Vray中文版基础视频教程下载课程素材06-牛刀小试》是一个针对初学者的教育资源,旨在帮助用户掌握Vray在中国语言环境下的基本使用技巧。Vray是一款广泛应用于建筑可视化、产品设计、室内设计等多个领域的专业渲染...

    2--[动画小试].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    2--[动画小试].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[动画小试].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[动画小试].zip源码scratch2.0 3.0编程项目源文件源码案例素材源...

    Android 小试牛刀(一)

    Android 小试牛刀1 博文链接:https://huangpengxiao.iteye.com/blog/199497

    ios hook 小试牛刀(一)

    ios hook 小试牛刀(一)ios hook 小试牛刀(一)ios hook 小试牛刀(一)ios hook 小试牛刀(一)ios hook 小试牛刀(一)ios hook 小试牛刀(一)ios hook 小试牛刀(一)

    Java小试一个播放音乐器

    本项目就是一个很好的例子——“Java小试一个播放音乐器”,它是一个简单的音乐播放程序,专门用于播放wav格式的音频文件。 在Java中实现音乐播放功能,主要涉及到以下几个核心知识点: 1. **音频文件处理**:Java...

    Elixir下开发嵌入式系统开发小试身手.zip

    本项目“Elixir下开发嵌入式系统开发小试身手.zip”旨在引导开发者初步了解如何在Elixir环境下进行物联网(IoT)相关的嵌入式系统开发。下面我们将深入探讨Elixir语言与物联网开发的相关知识点。 1. **Elixir语言基础...

    动画小试-少儿编程scratch项目源代码文件案例素材.zip

    这个名为"动画小试"的项目,是专门为少儿编程爱好者准备的一个学习案例,它通过生动有趣的动画形式,让孩子们在实践中掌握编程的基本概念。 源代码文件"2-动画小试.sb2"是该项目的核心部分,包含了整个动画的所有...

    通达信指标公式源码 小试牛刀精髓.doc

    当RSI超过83,文档中给出了一个信号(E),可能预示着股票短期内可能出现回调。 3. **SMA和EMA**: - SMA(简单移动平均线)和EMA(指数移动平均线)都是追踪价格趋势的指标。文档中的VAR1和VAR4A就使用了SMA和EMA...

    JSP FileUpload方式上传 一个小试例

    在这个“JSP FileUpload方式上传”的小试例中,我们将探讨如何使用JSP来实现文件上传功能,这是一个在Web开发中常见的需求。 首先,我们要明白文件上传的基本流程。用户在前端通过表单选择要上传的文件,然后提交...

    通达信指标公式源码小试牛刀.doc

    1. **VAR1**:这是基于N日最低价(LLV)和最高价(HHV)计算的一个动量指标。它通过计算收盘价相对于价格范围的百分比,然后加权平均得出。这个指标旨在捕捉价格趋势的变化。 2. **VAR2**:这是一个固定值8,用于与...

    Python小试,学习笔记,开发项目集合.zip

    Python小试,学习笔记,开发项目集合.zip

    牛刀小试C语言基础教学及实践

    文件操作是C语言中另一个重要的概念,学习如何打开、读取、写入和关闭文件,可以帮助开发者处理程序与外部数据的交互。 此外,C语言还包含预处理器(如#include、宏定义等)、内存管理(如动态内存分配和释放)以及...

    牛刀小试VC

    这部分内容对于初学者来说至关重要,因为一个良好的开发环境能极大地提高编程效率。 接着,教程会讲解C++的基本语法,如变量、数据类型、运算符、控制结构(如if语句和循环)、函数等。这些都是C++编程的基础,理解...

    牛刀小试的汇编教程,很好的入门教材!

    这个“牛刀小试的汇编教程”是为初学者设计的一份入门教材,旨在帮助学习者快速理解和掌握汇编语言的基本概念和操作。 汇编语言与机器语言紧密相关,每一行汇编代码都可以直接转换成相应的机器码,执行效率高,但...

    12 牛刀小试:我的第一个容器化应用.pdf

    12 牛刀小试:我的第一个容器化应用.pdf

    高级Bash脚本编程指南

    - **2.1 调用一个脚本** 脚本文件可以通过直接执行(如果设置了可执行权限)或者通过shell解释器来运行。例如: ```bash bash myscript.sh ``` - **2.2 小试牛刀** 创建一个简单的脚本,如打印当前日期: ...

    linux小试牛刀-项目开发

    Linux驱动开发是Linux系统编程的一个重要组成部分,它允许硬件设备与操作系统有效地交互。 首先,我们要理解Linux驱动是什么。Linux驱动程序是运行在内核空间中的软件模块,它们充当了操作系统与硬件设备之间的桥梁...

    第二周牛刀小试测试题答案1

    搜索行为往往在“长草”阶段之后,起决定性的推动作用,即“临门一脚”。 7. 影响广告质量分的因素:广告质量分(Quality Score)是谷歌评价广告质量的指标,它由广告相关性、预计点击率和着陆页体验等因素决定。...

Global site tag (gtag.js) - Google Analytics