Sha256: b20c86889dd7547ac134c8fdcac67bf8f68f4c052b91467025261dc4427f8c71

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 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[File.basename(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.each do |name, sum|
    #sum = Sake.help_summary( type )
    if dir == ''
      cmd = "sake #{name}"
    else
      cmd = File.join( dir.chomp('/'), 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

3 entries across 3 versions & 1 rubygems

Version Path
ratch-0.1 lib/ratch/cli/lt.rb
ratch-0.2.1 bin/lt
ratch-0.2.2 bin/lt