TAR/Ruby 0.1.1

Libarchive/Rubyを使ってください!

http://tarruby.rubyforge.org/
TAR/Ruby 0.1.1をリリースしました。

What's this?

TAR/RubyはlibtarのRubyバインディングです。
libtarについてはできるだけパッチをあてましたが、きちんとメンテナンスされていないライブラリなので、バグがあれば報告していただけると助かります。

Example

reading tar archive
require 'tarruby'

Tar.open('foo.tar', File::RDONLY, 0644, Tar::GNU) do |tar|
  while tar.read # or 'tar.each do ...'
    puts tar.pathname
    tar.print_long_ls

    if tar.reg? # regular file
      tar.extract_file('bar.txt')

      ##if extract buffer
      #puts tar.extract_buffer
    end
  end

  ##if extract all files
  #tar.extract_all
end

##for gzip archive
#Tar.gzopen('foo.tar.gz', ...

##for bzip2 archive
#Tar.bzopen('foo.tar.bz2', ...
creating tar archive
require 'tarruby'

Tar.open('bar.tar', File::CREAT | File::WRONLY, 0644, Tar::GNU) do |tar|
  Dir.glob('**/*.c').each do |filename|
    tar.append_file(filename)
  end

  ##if append directory
  #tar.append_tree('dirname')
end

##for gzip archive
#Tar.gzopen('foo.tar.gz', ...

##for bzip2 archive
#Tar.bzopen('foo.tar.bz2', ...