diff --git a/bin/test_argparse.rb b/bin/test_argparse.rb new file mode 100755 index 0000000..5495aa8 --- /dev/null +++ b/bin/test_argparse.rb @@ -0,0 +1,37 @@ +#!/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