sub parse_cmd_line {
GetOptions ("v|verbose+" => \$verbose,
"h|help" => sub { usage (0) },
sub parse_cmd_line {
GetOptions ("v|verbose+" => \$verbose,
"h|help" => sub { usage (0) },
"c|clean" => sub { set_action ('clean'); },
"x|extract" => sub { set_action ('extract'); },
"b|build" => sub { set_action ('build'); },
"t|test" => sub { set_action ('test'); },
"a|assemble" => sub { set_action ('assemble'); })
or die "Malformed command line; use --help for help.\n";
"c|clean" => sub { set_action ('clean'); },
"x|extract" => sub { set_action ('extract'); },
"b|build" => sub { set_action ('build'); },
"t|test" => sub { set_action ('test'); },
"a|assemble" => sub { set_action ('assemble'); })
or die "Malformed command line; use --help for help.\n";
if @ARGV > 0;
@TESTS = split(/,/, join (',', @TESTS)) if defined @TESTS;
if @ARGV > 0;
@TESTS = split(/,/, join (',', @TESTS)) if defined @TESTS;
-x, --extract Stop after step 1.
-b, --build Stop after step 2.
-t, --test Stop after step 3 (default if "review.txt" not present).
-x, --extract Stop after step 1.
-b, --build Stop after step 2.
-t, --test Stop after step 3 (default if "review.txt" not present).