#!/usr/athena/bin/perl
#
# To convert a non-spooldir'ed spool to spooldirs:
#
#   comment out all news cron jobs, kill all dnewslinks
#
#   dicmd readonly
#   add "spooldirs xxx" to dspool.ctl
#   cd /news/spool/foo
#   ls | grep ^D | spooldir-ify.pl xxx
#   restart diablo
#
#   un-comment out news cron jobs
#

($spooldirs) = @ARGV;
print "Spooldir'ifying with $spooldirs spooldirs.\n";

for ($spd = 0; $spd < $spooldirs; $spd++) {
  $spx = sprintf("%02x", $spd);
  system("mkdir N.$spx");
}

while (<STDIN>) {
  chop;
  die unless /^D.([0123456789abcdef]{8})$/;
  $gmx = $1;
  $gmt = hex $gmx;
  $spd = ($gmt / 10) % $spooldirs;
  $spx = sprintf("%02x", $spd);
  system("mv D.$gmx N.$spx") && die "mv D.$gmx N.$spx";
  system("ln -s N.$spx/D.$gmx .") && die "ln -s N.$spx/D.$gmx .";
}
