totally tasty also; just fixed safedel's issue with bizarre file names. turns out...
[feisty_meow.git] / scripts / files / safedel.pl
index c95e6621f8671d45cbf7387d772ac3179f565848..c0d710829c096c783f534366c74c62fbbbb2af40 100644 (file)
@@ -44,12 +44,6 @@ if ($OS eq "UNIX") {
   die "The Operating System variable (OS) is not set.\n";
 }
 
-# The zip program has slightly different parameters depending on the
-# version that will be run.  The DOS version needs to see a -P to remember
-# the directory names.
-$use_path = '';
-$wildcard = "";  # used for reasonable zips, like os/2 or unix.
-
 # set the filename used for numbering.
 local($NUMBER_FILE) = "$TMP/aa_safedel.num";
 
@@ -89,7 +83,6 @@ sub safedel {
 
   # reset the list of objects actually whacked.
   local(@deleted) = ();
-#  print "deleted list is @deleted\n";
 
   # iterate over the files that we have been told to nuke.
   foreach $file (@to_delete) {
@@ -107,14 +100,14 @@ sub safedel {
     $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";
+    $archive_file = $temp_subdir . "/del-$number-" . $datestamp;
+#print "archive_file is $archive_file; file is $file.\n";
 
     if (-d $file) {
       # ensure there aren't any read only files.
-      system("chmod -R u+rw \"$file\"");
+      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 $archive_file '$file' $DEV_NULL");
         # zip up the files into the safekeeper directory.
       # recursively unlink in case zip doesn't remove the empty dir.
       if (-d $file) {
@@ -123,11 +116,13 @@ sub safedel {
       }
       push(@deleted, "\"$file\"");
     } elsif (-f $file) {
+print "about to chmod file\n";
+      # make the file writable by our user if possible (which resets any
+      # prior permissions as long as we're the owner).
+      system("chmod u+rw '$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");
+#print "about to run: system [$zip -m $archive_file '$file' $DEV_NULL]";
+      system("$zip -m $archive_file '$file' $DEV_NULL");
       push(@deleted, "\"$file\"");
     } else {
       print "$0 cannot find \"$file\" to delete it.\n";
@@ -140,7 +135,7 @@ sub safedel {
     local($printable_date) = scalar(localtime());
 #&ctime(time);
     $printable_date =~ s/\n//g;
-    local($just_archived_filename) = `basename "$tempfile"`;
+    local($just_archived_filename) = `basename "$archive_file"`;
     while ($just_archived_filename =~ /[\r\n]$/) { chop $just_archived_filename; }
     print REPORT "\n";
     print REPORT $printable_date . " -- created \"" . $just_archived_filename . ".zip\"\n";