--- foxridge-archiver/archiver.pl 2005/09/20 17:24:57 1.5 +++ foxridge-archiver/archiver.pl 2005/10/05 13:35:12 1.7 @@ -16,7 +16,7 @@ $|=1; # # program version -my $version = "0.7 (ROC 20.9.2005)"; +my $version = "0.7.2 (ROC 5.10.2005)"; # short help my $help = "MPIWG archiver $version @@ -25,6 +25,7 @@ options: -debug show debugging info -premigrate don't delete archived files -force archive even if already archived + -replace rewrite index file "; # read command line parameters @@ -40,6 +41,9 @@ $debug = (exists $$args{'debug'}) ? $$ar # force archiving my $force_archive = (exists $$args{'force'}) ? $$args{'force'} : 0; +# rewrite index file +my $rewrite_index = (exists $$args{'replace'}) ? $$args{'replace'} : 0; + # rewrite XML file (necessary for archive date!) my $fix_xml = 1; my $xml_changed = 0; @@ -274,7 +278,7 @@ sub delete_files { next unless (-f $f); # delete files if (unlink $f) { - logger('INFO', "remove $f ($fn)"); + logger('DEBUG', "remove $f ($fn)"); } else { logger('ERROR', "unable to delete $f!"); $errcnt++; @@ -288,7 +292,7 @@ sub delete_files { # dont't remove document dir (shouldn't be empty anyway) next if ($d eq $docdir); if (-d $d) { - logger('INFO', "remove dir $d"); + logger('DEBUG', "remove dir $d"); rmdir $d; } } @@ -319,7 +323,7 @@ sub delete_all_files { if (-f "$dir/$f") { # $f is a file if (unlink "$dir/$f") { - logger('INFO', "removed $f"); + logger('DEBUG', "removed $f"); } else { logger('ERROR', "unable to delete $f!"); $errcnt++; @@ -327,7 +331,7 @@ sub delete_all_files { } elsif (-d _) { # $f is a directory (unlink won't work) if ((system 'rm', '-r', "$dir/$f") == 0) { - logger('INFO', "removed directory $f"); + logger('DEBUG', "removed directory $f"); } else { logger('ERROR', "unable to delete directory $f!"); $errcnt++; @@ -357,8 +361,7 @@ logger('START', "archiver $version at $a # make shure the right user is running this program my $user = getlogin; if (($user ne "archive")&&($user ne "root")) { - logger("ABORT", "you ($user) must be archive or root user to run this program!"); - exit 1; + logger("WARNING", "you ($user) should be archive or root user to run this program!"); } # check for .archived file @@ -373,7 +376,11 @@ if (-f "$docdir/.archived") { } # use metacheck first -if (open CHECK, "$checkprog -add-files $docdir |") { +my $check_opts="-add-files"; +if ($rewrite_index) { + $check_opts = "-replace"; +} +if (open CHECK, "$checkprog $check_opts $docdir |") { my @errors; my $msg; while () {