]> mj.ucw.cz Git - bex.git/blob - lib/bin/queue
`bex queue' without more arguments lists all queues
[bex.git] / lib / bin / queue
1 #!/usr/bin/perl
2 # Batch EXecutor 3.0 -- Operations on Queues
3 # (c) 2011-2012 Martin Mares <mj@ucw.cz>
4
5 use strict;
6 use warnings;
7 use Getopt::Long;
8 use BEX;
9
10 my $init;
11
12 GetOptions(
13         "init!" => \$init,
14 ) or die <<AMEN ;
15 Usage: bex queue [<options>] <subcommand>
16
17 Subcommands:
18 init <queue>    Create a new queue
19 ls              List all queues
20
21 Options:
22 None defined so far.
23 AMEN
24
25 my $op = shift @ARGV // 'ls';
26
27 if ($op eq 'init') {
28         my $queue_name = shift @ARGV or die "bex queue init requires a queue name\n";
29         my $path = $BEX::Config::home . '/' . $queue_name;
30         -d $path and die "Queue directory $path already exists\n";
31         mkdir $path;
32         mkdir "$path/hosts";
33         mkdir "$path/jobs";
34         print "Queue $queue_name initialized.\n";
35 } elsif ($op eq 'ls' && @ARGV == 0) {
36         opendir D, $BEX::Config::home or die "Cannot read BEX home directory\n";
37         for my $q (sort readdir D) {
38                 if (-d $q && -d "$q/hosts" && -d "$q/jobs") {
39                         print "$q\n";
40                 }
41         }
42         closedir D;
43 } else {
44         die "Invalid subcommand\n";
45 }