my $bex_home = $ENV{"BEX_HOME"} // ".";
my $bex_lib = $ENV{"BEX_LIB"} // "lib";
-Getopt::Long::Configure('require_order');
-GetOptions(
- "home=s" => \$bex_home,
- "lib=s" => \$bex_lib,
- "help" => sub {
- print <<AMEN ;
+sub show_help() {
+ print <<AMEN ;
Usage: bex <general-options> <command> <command-options> <args>
General options:
Commands (and aliases):
add (a) Add new jobs to a queue
+help Show this help
job Operations on queued jobs
-ls (l) Show queues and jobs on them
mach List known machines and groups
prun (pr) Parallel version of `run'
+qman Management of queues
+queue (q) Show queues and jobs on them
run (r) Run queued jobs
AMEN
- exit 0;
- },
+ exit 0;
+}
+
+Getopt::Long::Configure('require_order');
+GetOptions(
+ "home=s" => \$bex_home,
+ "lib=s" => \$bex_lib,
+ "help" => \&show_help,
"version" => sub {
print "BEX 3.0 (c) 2011-2012 Martin Mares <mj\@ucw.cz>\n";
},
-) or die "Try `bex --help' for more information.\n";
+) or die "Try `bex help' for more information.\n";
Getopt::Long::Configure('default');
if (!-d $bex_home) {
die "BEX home directory $bex_home does not exist.\n";
}
-if (!-d "$bex_home/BEX") {
- die "BEX home directory $bex_home does not contain the BEX subdirectory.\n";
+if (!-d "$bex_home/cf") {
+ die "BEX home directory $bex_home does not contain the cf subdirectory.\n";
}
if (!-f "$bex_lib/perl/BEX.pm") {
die "BEX library directory $bex_lib misconfigured.\n";
my $sub = shift @ARGV;
$sub =~ /^[0-9a-zA-Z]+$/ or die "Invalid subcommand $sub\n";
+if ($sub eq 'help') { show_help(); }
+
my %aliases = (
'a' => 'add',
- 'l' => 'ls',
'p' => 'prun',
+ 'q' => 'queue',
'r' => 'run',
);
if (defined $aliases{$sub}) { $sub = $aliases{$sub}; }
-my $sub_path = "$bex_lib/bin/$sub";
+my $sub_path = "$bex_lib/bin/bex-$sub";
-x $sub_path or die "Unknown subcommand $sub\n";
$ENV{"BEX_HOME"} = $bex_home;