# File lib/archive/tar/minitar/command.rb, line 622 def altname "ls" end
# File lib/archive/tar/minitar/command.rb, line 634 def call(args, opts = {}, ioe = {}) argv = [] output = nil dest = "." files = [] opts[:field] = "name" while (arg = args.shift) case arg when '--sort', '-S' opts[:sort] = true opts[:field] = args.shift when '--reverse', '-R' opts[:reverse] = true opts[:sort] = true when '--uncompress', '-z' opts[:uncompress] = true when '-l' opts[:verbose] = true else argv << arg end end if argv.size < 1 ioe[:output] << "Not enough arguments.\n\n" CommandPattern["help"][["list"]] return 255 end input = argv.shift if '-' == input opts[:name] = "STDIN" input = ioe[:input] else opts[:name] = input input = File.open(input, "rb") end if opts[:name] =~ /\.tar\.gz$|\.tgz$/ or opts[:uncompress] input = Zlib::GzipReader.new(input) end files << argv.to_a files.flatten! if opts[:verbose] or opts[:progress] format = "%10s %4d %8s %8s %8d %12s %s" datefmt = "%b %d %Y" timefmt = "%b %d %H:%M" fields = %(permissions inodes user group size date fullname) else format = "%s" fields = %(fullname) end opts[:field] = opts[:field].intern opts[:field] = :full_name if opts[:field] == :name output = [] Archive::Tar::Minitar::Input.open(input) do |inp| today = Time.now oneyear = Time.mktime(today.year - 1, today.month, today.day) inp.each do |entry| value = format % fields.map do |ff| case ff when "permissions" s = entry.directory? ? "d" : "-" s << modestr(entry.mode / 0100) s << modestr(entry.mode / 0010) s << modestr(entry.mode) when "inodes" entry.size / 512 when "user" entry.uname || entry.uid || 0 when "group" entry.gname || entry.gid || 0 when "size" entry.size when "date" if Time.at(entry.mtime) > (oneyear) Time.at(entry.mtime).strftime(timefmt) else Time.at(entry.mtime).strftime(datefmt) end when "fullname" entry.full_name end end if opts[:sort] output << [entry.send(opts[:field]), value] else ioe[:output] << value << "\n" end end end if opts[:sort] output = output.sort { |a, b| a[0] <=> b[0] } if opts[:reverse] output.reverse_each { |oo| ioe[:output] << oo[1] << "\n" } else output.each { |oo| ioe[:output] << oo[1] << "\n" } end end 0 end
# File lib/archive/tar/minitar/command.rb, line 746 def help help = minitar list [OPTIONS] <tarfile|-> [<file>+]Lists files in an existing tarfile. If the tarfile is named .tar.gz or.tgz, then it will be uncompressed automatically. If the tarfile is "-",then it will be read from standard input (stdin) so that minitar may bepiped.If --verbose or --progress is specified, then the file list will besimilar to that produced by the Unix command "ls -l".list Options: --uncompress, -z Uncompresses the tarfile with gzip. --sort [<FIELD>], -S Sorts the list of files by the specified field. The sort defaults to the filename. --reverse, -R Reverses the sort. -l Lists the files in detail.Sort Fields: name, mtime, size end
Generated with the Darkfish Rdoc Generator 2.