# encoding: utf-8 require 'rubygems/package' require 'zlib' module Vulcano::Targets class TarHelper def structure input files = Array.new Gem::Package::TarReader.new( Zlib::GzipReader.open input ) do |tar| files = tar.map{|entry| entry.full_name } end return files end def content input content = {} Gem::Package::TarReader.new( Zlib::GzipReader.open input ) do |tar| tar.each do |entry| if entry.directory? #nothing to do elsif entry.file? content[entry.full_name] = entry.read elsif entry.header.typeflag == '2' # ignore symlinks for now end end end return content end end end