X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Ffiles%2Fsafedel.pl;h=c95e6621f8671d45cbf7387d772ac3179f565848;hb=b68038797f34281ab2b7836960812a0cc02e7268;hp=44288b414e9d1cd6dadffcf68e57b1083a25919f;hpb=7292b72668557e9dfcff71eea9729cbd8b523c94;p=feisty_meow.git diff --git a/scripts/files/safedel.pl b/scripts/files/safedel.pl index 44288b41..c95e6621 100644 --- a/scripts/files/safedel.pl +++ b/scripts/files/safedel.pl @@ -20,19 +20,19 @@ ############################################################################### require Cwd; -require "ctime.pl"; require "filename_helper.pl"; require "inc_num.pl"; -require "importenv.pl"; require "zap_the_dir.pl"; +use Env qw(TMP OS); + #hmmm: need a usage statement. if ($#ARGV < 0) { die "Too few arguments to command."; } -$DEV_NULL = "&> /dev/null"; +$DEV_NULL = "> /dev/null 2> /dev/null"; if ($OS eq "UNIX") { $FIND_ENDING = "';'"; $zip = "zip -y "; @@ -72,9 +72,15 @@ sub safedel { # print "final list of whackees: @to_delete\n"; # we store the deleted files in a directory under the temporary directory. - $temp_subdir = $TMP . "/zz_del_keep"; + if (! -d $TMP) { + mkdir "$TMP", 0700; + if (! -d $TMP) { + die "the TMP directory $TMP could not be created!\n"; + } + } + $temp_subdir = $TMP . "/zz_safedel_keep"; if (! -d $temp_subdir) { - mkdir "$temp_subdir", 0777; + mkdir "$temp_subdir", 0700; # create the subdirectory under temp if missing. if (! -d $temp_subdir) { die "the directory $temp_subdir could not be created!\n"; @@ -96,36 +102,49 @@ sub safedel { print "ignoring attempt to remove current or parent directory.\n"; next; } - $tempfile = $temp_subdir . "/temp" . "$number"; -# print "tempfile is $tempfile; file is $file.\n"; + +#hmmm: extract this shared bit of code as new method (also in shared snarfer) + $date_tool = "date"; + local($datestamp) = `$date_tool +%Y-%m-%d-%H%M`; + while ($datestamp =~ /[\r\n]$/) { chop $datestamp; } + $tempfile = $temp_subdir . "/deleted-#$number-" . $datestamp; +#print "tempfile is $tempfile; file is $file.\n"; + if (-d $file) { # ensure there aren't any read only files. system("chmod -R u+rw \"$file\""); # store the directory in the trash storage. - system("$zip -rm$use_path $tempfile \"$file$wildcard\" $DEV_NULL"); + system("$zip -rm $use_path $tempfile \"$file$wildcard\" $DEV_NULL"); # zip up the files into the safekeeper directory. # recursively unlink in case zip doesn't remove the empty dir. if (-d $file) { # remove the directory itself if possible, since zip did not. &recursively_zap_dirs($file); } - push(@deleted, "$file"); + push(@deleted, "\"$file\""); } elsif (-f $file) { # store the file in the trash storage. system("chmod u+rw \"$file\""); + +#print "about to run: system [$zip -m$use_path $tempfile '$file' $DEV_NULL]"; system("$zip -m$use_path $tempfile \"$file\" $DEV_NULL"); - push(@deleted, "$file"); + push(@deleted, "\"$file\""); } else { print "$0 cannot find \"$file\" to delete it.\n"; } } if (@deleted) { print "Trashed [@deleted].\n"; - open(REPORT, ">>$TMP/zz_safedel.rpt"); + open(REPORT, ">>$TMP/zz_safedel_report.txt"); - local($printable_date) = &ctime(time); + local($printable_date) = scalar(localtime()); +#&ctime(time); $printable_date =~ s/\n//g; - print REPORT $printable_date . " -- safedel: \"temp" . $number . ".zip\" <= [@deleted]\n"; + local($just_archived_filename) = `basename "$tempfile"`; + while ($just_archived_filename =~ /[\r\n]$/) { chop $just_archived_filename; } + print REPORT "\n"; + print REPORT $printable_date . " -- created \"" . $just_archived_filename . ".zip\"\n"; + print REPORT $printable_date . " -- from [@deleted]\n"; close(REPORT); } else { print "No files were deleted.\n";