diff -ur tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/init.rb tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/init.rb --- tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/init.rb 2004-12-03 23:09:07.000000000 +0100 +++ tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/init.rb 2004-12-18 14:58:32.000000000 +0100 @@ -2,7 +2,7 @@ exit if ARGV.include?("--tar2rubyscript-exit") -scriptfile = "tarrubyscript.rb" +scriptfile = newlocation("tarrubyscript.rb") tarfile = oldlocation(ARGV.shift) rbfile = oldlocation(ARGV.shift) licensefile = oldlocation(ARGV.shift) diff -ur tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/tarrubyscript.rb tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/tarrubyscript.rb --- tar2rubyscript-0.4.0.tar.gz/tar2rubyscript/tarrubyscript.rb 2004-12-03 22:53:43.000000000 +0100 +++ tar2rubyscript-0.4.1.tar.gz/tar2rubyscript/tarrubyscript.rb 2004-12-18 12:29:29.000000000 +0100 @@ -21,6 +21,7 @@ # Tar2RubyScript constants +ShowContent = ARGV.include?("--tar2rubyscript-list") JustExtract = ARGV.include?("--tar2rubyscript-justextract") ToTar = ARGV.include?("--tar2rubyscript-totar") @@ -91,6 +92,12 @@ end end + def list + each do |entry| + entry.list + end + end + def each @fp.rewind @@ -153,6 +160,18 @@ #File.utime(Time.now, @header.mtime, @header.name) end end + + def list + if not @header.name.empty? + if @header.dir? + puts "d %s" % [@header.name] + elsif @header.file? + puts "f %s (%s)" % [@header.name, @data.length] + else + puts "Couldn´t handle entry #{@header.name}" + end + end + end end class Header @@ -201,6 +220,32 @@ end end +class Content + def initialize + @archive = File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift + temp = ENV["TEMP"] + temp = "/tmp" if temp.nil? + @tempfile = "#{temp}/tar2rubyscript.f.#{Process.pid}" + end + + def list + begin + File.open(@tempfile, "wb") {|f| f.write @archive} + File.open(@tempfile, "rb") {|f| Reader.new(f).list} + ensure + File.delete(@tempfile) + end + + self + end + + def cleanup + @archive = nil + + self + end +end + class TempSpace def initialize @archive = File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift @@ -377,29 +422,29 @@ end end -if JustExtract +if ShowContent + Content.new.list.cleanup +elsif JustExtract Extract.new.extract.cleanup +elsif ToTar + MakeTar.new.extract.cleanup else - if ToTar - MakeTar.new.extract.cleanup - else - TempSpace.new.extract.cleanup + TempSpace.new.extract.cleanup - $: << newlocation + $:.unshift(newlocation) - newlocation do - if __FILE__ == $0 - $0.replace("./init.rb") + newlocation do + if __FILE__ == $0 + $0.replace("./init.rb") - if File.file?("./init.rb") - load "./init.rb" - else - $stderr.puts "%s doesn´t contain an init.rb ." % __FILE__ - end + if File.file?("./init.rb") + load "./init.rb" else - if File.file?("./init.rb") - load "./init.rb" - end + $stderr.puts "%s doesn´t contain an init.rb ." % __FILE__ + end + else + if File.file?("./init.rb") + load "./init.rb" end end end