Sha256: 33103d409c71491036c570e5a8b086bf13ba563f2f3cd4d227e7855e088b6b9d
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
# encoding: utf-8 require "nake/dsl" argument("-H", "--help") do Kernel.abort "Use #{$0} -T for list of all available tasks or -i for interactive session" end argument("-T", "--tasks") do |pattern = nil| tasks, options = Task.tasks.select { |name, task| not task.hidden? }.sort.partition { |key, value| not key.match(/^-/) } arguments = Nake.args.sort puts "\n#{"===".yellow} #{"Available tasks".magenta} #{"===".yellow}" if tasks.empty? puts "No tasks defined" else tasks.each do |name, task| puts "#{name.green} #{task.dependencies.join(", ")} # #{task.description || "no description yet"}" end end puts "\n#{"===".yellow} #{"Available arguments".magenta} #{"===".yellow}" if arguments.empty? puts "No arguments defined" else arguments.each do |names, proc| puts "#{names.join(" or ").green}" # TODO: description end end exit end argument("-i", "--interactive") do |task = nil| ARGV.clear # otherwise IRB will parse it require "irb" begin require "irb/readline" rescue LoadError warn "Code completion via readline isn't available" end if task Task[task].tap { |task| task.call(*args, options) } end IRB.start exit! end Nake.args["--verbose", "--no-verbose"] = lambda { |key, value| Nake.verbose = value } Nake.args["--debug", "--no-debug"] = lambda { |key, value| Nake.debug = value }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nake-0.0.6 | lib/nake/args.rb |
nake-0.0.5 | lib/nake/args.rb |