License:
BSD style: see license.txtVersion:
Oct 2009: Initial releaseAuthor:
Kris
1 2 3 4 5 6 | auto args = new Arguments; args.parse ("-a -b", true); auto a = args("a"); auto b = args("b"); if (a.set && b.set) ... |
1 2 | args.parse ("-a=1 -a=2 foo", true); assert (args('a').assigned.length is 3); |
1 2 | args.parse ("thisfile.txt thatfile.doc -v", true); assert (args(null).assigned.length is 2); |
1 2 3 4 | args = new Arguments; args('x').required; if (! args.parse("-x")) // x not supplied! |
1 2 | args("foo").required.params(1).aliased('f').requires("bar"); args("help").aliased('?').aliased('h'); |
1 2 | args("greeting").restrict("hello", "yo", "gday"); args("enabled").restrict("true", "false", "t", "f", "y", "n"); |
1 2 3 4 | if (! args.parse (...)) foreach (arg; args) if (arg.error) ... |
1 2 3 4 5 6 7 8 | None: ok (zero) ParamLo: too few params for an argument ParamHi: too many params for an argument Required: missing argument is required Requires: depends on a missing argument Conflict: conflicting argument is present Extra: unexpected argument (see sloppy) Option: parameter does not match options |
1 2 | if (! args.parse (...)) stderr (args.errors(&stderr.layout.sprint)); |
1 2 3 4 5 6 | args.parse ("--foo --bar -abc", true); assert (args("foo").set); assert (args("bar".set); assert (args("a").set); assert (args("b").set); assert (args("c").set); |
1 2 3 | args('o').params(1).smush; if (args.parse ("-ofile")) assert (args('o').assigned[0] == "file"); |
1 2 3 4 5 6 7 8 | auto args = new Args ("/", "-", ':'); args.parse ("-foo:param -bar /abc"); assert (args("foo").set); assert (args("bar".set); assert (args("a").set); assert (args("b").set); assert (args("c").set); assert (args("foo").assigned.length is 1); |
1 2 3 | args('v').params(0); assert (args.parse (`-v thisfile.txt thatfile.doc`)); assert (args(null).assigned.length is 2); |
1 | args.parse (`--comment="-- a comment --"`); |
1 2 | args.parse (`-- -thisfile --thatfile`); assert (args(null).assigned.length is 2); |
1 2 3 | auto args = new Arguments; if (! args.parse (...)) stderr (args.errors(&stderr.layout.sprint)); |
1 2 3 | auto args = new Arguments; if (! args.parse (...)) Stderr (args.errors(&Stderr.layout.sprint)); |
1 | auto msgs = args.errors (&stderr.layout.sprint); |
1 2 3 4 5 6 | index 0: the argument name index 1: number of parameters index 2: configured minimum parameters index 3: configured maximum parameters index 4: conflicting/dependent argument name index 5: array of configured parameter options |
1 2 3 4 5 6 7 8 | None: ok ParamLo: too few params for an argument ParamHi: too many params for an argument Required: missing argument is required Requires: depends on a missing argument Conflict: conflicting argument is present Extra: unexpected argument (see sloppy) Option: parameter does not match options |