#!/usr/bin/perl

use strict;
use lib '/home/mjd/lib';
use MJD::Print;
my $jobs = 0;

our $COUNT_ONLY;
while ($ARGV[0] =~ /^-(\w+)/) {
  shift;
  my $flag = $1;
  if ($flag eq 'n') {
    $COUNT_ONLY = 1;
  } else {
    usage("Unknown flag -$flag");
  }
}

my %CONF = load_conf($CONFIG);
my $spool = $CONF{spooldir};

my $curfile = "$spool/$CONF{curfile}";
my $cur_ino = (stat $curfile)[1] || -1;

unless (opendir D, $spool) {
  die "Couldn't read spool directory $spool: $!; aborting";
}
my @jobs = grep ! -l "$spool/$_" && -f _, grep !/^\./, readdir D;
for my $file (sort {-M "$spool/$b" <=> -M "$spool/$a"} @jobs) {
  next if -l "$spool/$file" || ! -f _;
  printf "%s %9s %24s %9s\n", " ", "owner", "spooled", "size"
    unless $COUNT_ONLY || $::DID_HEADER++;
  my $ino = (stat _)[1];
  my $size = -s _;
  my ($own_id, $date, $pid) = split /\./, $file;
  my $owner = getpwuid($own_id) || "#$own_id";
  printf "%s %9s %24s %9d\n", ($ino == $cur_ino ? "*" : " "),
    $owner, scalar(localtime($date)), $size
      unless $COUNT_ONLY;
  $jobs++;
}
if ($COUNT_ONLY) {
  print $jobs, "\n";
} else {
  print  "Queue empty.\n" if $jobs == 0;
}



sub usage {
  my $msg = shift;
  print STDERR "$msg\n";
  print STDERR "Usage: $0 [-n]\n";
  exit 1;
}
