Skip to content

Instantly share code, notes, and snippets.

@takai
Created November 4, 2008 22:02
Show Gist options
  • Save takai/22230 to your computer and use it in GitHub Desktop.
Save takai/22230 to your computer and use it in GitHub Desktop.
#!/usr/bin/ruby
# -*- mode: ruby; encoding: utf-8-unix -*-
require 'tmpdir'
origdir = Dir::pwd
target = File.expand_path(ARGV[0])
dir = File::dirname(target)
rar = File::basename(target)
if /\.rar$/ === rar
basename = $`
zip = "#{basename}.zip"
else
STDERR.puts "#{rar} is not RAR file."
exit
end
workdir = File.join(Dir.tmpdir, basename)
Dir::mkdir(workdir)
Dir::chdir(workdir)
`unrar x "#{target}"`
`zip -r "#{zip}" ./`
`mv "#{File.join(workdir, zip)}" "#{dir}"`
Dir::chdir(origdir)
`rm -rf "#{workdir}"`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment