diff options
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/rhrd-pool | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/utils/rhrd-pool b/utils/rhrd-pool index acaff65..ada9b6f 100755 --- a/utils/rhrd-pool +++ b/utils/rhrd-pool @@ -29,7 +29,7 @@ sub print_usage { print STDERR "Usage: rhrd-pool list\n" . " rhrd-pool show <short-name>\n" . - " rhrd-pool remove <short-name> [--force]\n" . + " rhrd-pool remove|clear <short-name> [--force]\n" . " rhrd-pool add <groupname> <title>\n" . " rhrd-pool edit <short-name> <title>\n"; } @@ -209,6 +209,38 @@ sub remove return 0; } +sub clear +{ + my ($ctx, $shortname, $force) = @_; + + if(defined($force) && $force ne "--force") { + print_usage(); + return 1; + } + + my @slots = RHRD::rddb::get_musicpool_clock_usage($ctx, $shortname); + if(!defined $slots[0] && defined $slots[1]) { + print STDERR "$slots[1]: $slots[2]"; + return 1; + } + if(scalar(@slots) > 0) { + print STDERR "musicpool is still in use (" . scalar(@slots) . " grid entries)\n"; + return 1 unless(defined($force)); + print STDERR " *** forced clearing ***\n" + } + + my @results = RHRD::rddb::clear_musicpool($ctx, $shortname); + if(!defined $results[0] && defined $results[2]) { + print STDERR $results[1] . ": " . $results[2] . "\n"; + return 1; + } + for my $href (@results) { + print int($href->{cnt}) . " " . $href->{name} . " deleted\n"; + } + + return 0; +} + my $num_args = $#ARGV + 1; if($num_args < 1) { print_usage(); @@ -243,6 +275,14 @@ if(defined $ctx) { $ret = remove($ctx, $ARGV[1], $ARGV[2]); } } + elsif($cmd eq "clear") { + if($num_args < 2 || $num_args > 3) { + print_usage(); + $ret = 1; + } else { + $ret = clear($ctx, $ARGV[1], $ARGV[2]); + } + } elsif($cmd eq "add") { if($num_args != 3) { print_usage(); |