User:AnomieBOT/source/show-pending-commands.pl
Appearance
< User:AnomieBOT | source
#!/usr/bin/perl -w
use strict;
my @rows = ();
use Cwd;
use File::Basename;
use lib File::Basename::dirname( Cwd::realpath( __FILE__ ) );
use AnomieBOT::API;
open(X, "<:utf8", "conf.ini") or die "Could not open conf.ini: $!\n";
while(<X>){
next unless /^\[bot (\d+)\]\s*$/o;
my $botnum = $1;
my $api = AnomieBOT::API->new("conf.ini", $botnum, { db => 0 });
my $file = $api->{'commandfile'};
my $cmd = $api->read_command( $file, qr/^/ ) // '<none>';
push @rows, [ $botnum, $file, $cmd ];
$api->DESTROY;
$api = undef;
}
my $api = AnomieBOT::API->new("conf.ini", 1, { db => 0 });
my $file = 'cache:command:AnomieBOT-updater';
my $cmd = $api->read_command( $file, qr/^/ ) // '<none>';
push @rows, [ 'updater', $file, $cmd ];
my @l = (0,0);
for my $row (@rows) {
$l[0] = length($row->[0]) if length($row->[0]) > $l[0];
$l[1] = length($row->[1]) if length($row->[1]) > $l[1];
}
my $fmt = '%-'.$l[0].'s %-'.$l[1]."s %s\n";
for my $row (@rows) {
printf $fmt, @$row;
}