#!/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