]> mj.ucw.cz Git - bex.git/blob - lib/bin/bex-qman
bex prun: Squashed uninitialized var warning
[bex.git] / lib / bin / bex-qman
1 #!/usr/bin/perl
2 # Batch EXecutor 3.0 -- Management of 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 sub usage() {
13         print <<AMEN ;
14 Usage: bex qman [<options>] <subcommand>
15
16 Subcommands:
17 init <queue>    Create a new queue
18 ls              List all queues
19
20 Options:
21 None defined so far.
22 AMEN
23         exit 0;
24 }
25
26 GetOptions(
27         "init!" => \$init,
28         "help" => \&usage,
29 ) or die "Try `bex qman --help' for more information.\n";
30
31 my $op = shift @ARGV // 'ls';
32
33 if ($op eq 'init') {
34         my $queue_name = shift @ARGV or die "bex qman init requires a queue name\n";
35         my $path = $BEX::Config::home . '/' . $queue_name;
36         -d $path and die "Queue directory $path already exists\n";
37         mkdir $path;
38         mkdir "$path/hosts";
39         mkdir "$path/jobs";
40         print "Queue $queue_name initialized.\n";
41 } elsif ($op eq 'ls' && @ARGV == 0) {
42         opendir D, $BEX::Config::home or die "Cannot read BEX home directory\n";
43         for my $q (sort readdir D) {
44                 next if $q =~ /^\./;
45                 my $d = $BEX::Config::home . '/' . $q;
46                 if (-d $d && -d "$d/hosts" && -d "$d/jobs") {
47                         print "$q\n";
48                 }
49         }
50         closedir D;
51 } else {
52         die "Invalid subcommand\n";
53 }