cmdtest/bin/test_argparse.rb
2016-01-05 19:10:02 +01:00

38 lines
1.3 KiB
Ruby
Executable File

#!/usr/bin/ruby
top_dir = File.dirname(File.dirname(__FILE__))
lib_dir = File.join(File.expand_path(top_dir), "lib")
$:.unshift(lib_dir) if File.directory?(File.join(lib_dir, "cmdtest"))
require "cmdtest/argumentparser"
pr = Cmdtest::ArgumentParser.new("jcons_cmds")
pr.add("-q", "--quiet", "be more quiet")
pr.add("-j", "--parallel", "build in parallel", type: Integer, default: 1, metavar: "N")
pr.add("-k", "--keep-going", "continue after errors")
pr.add("-B", "--always-make", "always build targets")
pr.add("-r", "--remove", "remove targets")
pr.add("", "--accept-existing-target", "make updating an existing target a nop")
pr.add("", "--dont-trust-mtime", "always consult files for content digest")
pr.add("-f", "--file", "name of *.cmds file", type: [String])
pr.add("-v", "--verbose", "be more verbose")
pr.add("", "--version", "show version")
pr.add("", "--cache-dir", "name of cache directory", type: String)
pr.add("", "--cache-force", "copy existing files into cache")
pr.add("-p", "--list-targets", "list known targets")
pr.add("", "--list-commands","list known commands")
pr.add("", "--log-states", "log state machine")
pr.addpos("arg", "target or NAME=VALUE", nargs: 0..999)
opts = pr.parse_args(ARGV)
p opts