diff options
Diffstat (limited to 'util/mvdir.pl')
-rw-r--r-- | util/mvdir.pl | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/util/mvdir.pl b/util/mvdir.pl new file mode 100644 index 00000000..1587b799 --- /dev/null +++ b/util/mvdir.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl +if( !@ARGV ){ + print "usage: mvdir.pl which prefix from_id to_id\n"; + exit; +} + +($which, $prefix, $from_id, $to_id) = @ARGV; +$which = 'man/boards' if( $which eq 'man' ); + +$fromdir = "/scsi$from_id/bbs/$which/$prefix"; +$todir = "/scsi$to_id/bbs/$which/$prefix"; + +if( !-e $fromdir ){ + print "from dir ($fromdir) not found\n"; + exit; +} + +mkdir $todir; +chdir $fromdir; +foreach( <*> ){ + next if( /^\./ ); + symlink("$fromdir/$_", "$todir/$_"); + push @dirs, $_; +} + +unlink "/home/bbs/$which/$prefix"; +symlink($todir, "/home/bbs/$which/$prefix"); + +foreach( @dirs ){ + printf("processing %-20s (%04d/%04d)\n", $_, ++$index, $#dirs); + unlink "$todir/$_"; + `mv $fromdir/$_ $todir/$_`; +} + +rmdir "$fromdir"; |