On Wednesday, 26 February 2014 at 09:57:19 UTC, Andrew Edwards
wrote:
Request a small example of how to use getopt to accomplish the
following:
[1] program subcommand //process subcommand with default
arguments if any
[2] program -h subcommand //output help information about
subcommand
[3] program subcommand --option1 --option2 true option3=log.txt
// process subcommand with user specified options
import std.getopt;
void main(string[] args)
{
bool help;
getopt(args,
"h|help", &help,
config.stopOnFirstNonOption,
);
if (args.length == 1)
{
// Print general help and list of commands
return;
}
auto subcommand = args[1];
switch (subcommand)
{
case "subcommand":
{
if (help)
{
// Print help for subcommand
return;
}
bool option1;
string option2, option3;
getopt(args,
"option1", &option1,
"option2", &option2,
"option3", &option3,
);
// Process subcommand with specified options
break;
}
default:
throw new Exception("Unknown subcommand "~
subcommand);
}
}