Sha256: e6a0410d19bb72b34c109f75546e95c735a75c3d9cc291daba215a97395617ed

Contents?: true

Size: 1 KB

Versions: 4

Compression:

Stored size: 1 KB

Contents

#! /usr/bin/ruby1.8

# scan task scripts for descriptions

def script_desc(dir)
  help = {}
  files = Dir.glob(File.join(dir,'**/*'))
  files.each do |fname|
    next if FileTest.directory?(fname)
    next unless FileTest.executable?(fname)
    desc = ''
    File.open(fname) do |f|
      line = ''
      until f.eof?
        line = f.gets
        case line
        when /^(#!|\s*$)/
          next
        when /^\s*#(.*)/
          desc = $1.strip; break
        else
          desc = nil; break
        end
      end
    end
    help[fname] = desc
  end
  help
end

def show(dir)
  tasks = script_desc(dir)
  max = tasks.keys.max{ |a,b| a.size <=> b.size }.size
  if dir == ''
    max += 4 + 2
  else
    max += dir.size + 2
  end
  tasks = tasks.sort_by{|k,v| k }
  tasks.each do |name, sum|
    if dir == ''
      cmd = "ratch #{name}"
    else
      cmd = name
    end
    puts "%-#{max}s # %s" % [cmd, sum]
  end
end

dir = ARGV[0] || '.'

if File.directory?(dir)
  show( dir )
else
  puts "#{dir} is not a directory"
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ratch-0.2.3 bin/lt
ratch-0.3.0 bin/lt
ratch-0.4.0 bin/lt
ratch-0.4.1 bin/lt