took out noisesome logging
[feisty_meow.git] / scripts / files / safedel.pl
index 60408046ebbc636138e838e037ce4e70bf404040..6b8ed29a3419cddab46db8dec93e8b58102cfceb 100644 (file)
@@ -24,7 +24,7 @@ require "filename_helper.pl";
 require "inc_num.pl";
 require "zap_the_dir.pl";
 
-use Env qw(TMP OS);
+use Env qw(TMP OS DEBUG_FEISTY_MEOW);
 
 #hmmm: need a usage statement.
 
@@ -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";
 
@@ -69,7 +63,8 @@ exit 0;
 sub safedel {
   # get the list of files and directories to whack.
   local(@to_delete) = &glob_list(@_);
-#  print "final list of whackees: @to_delete\n";
+#hmmm: make this into a debug option. 
+#print "list of whackees: @to_delete\n";
 
   # we store the deleted files in a directory under the temporary directory.
   if (! -d $TMP) { 
@@ -97,6 +92,9 @@ sub safedel {
     if (substr($file, length($file) - 1, 1) eq ":") {
       die "removing the root directory of a drive is not permitted!";
     }
+
+#print "file to whack: '$file'\n";
+
     if ( ($file =~ /^.*\/\.$/) || ($file =~ /^.*\/\.\.$/) ) {
       print "ignoring attempt to remove current or parent directory.\n";
       next;
@@ -111,9 +109,9 @@ sub safedel {
 
     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 $archive_file \"$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) {
@@ -122,18 +120,22 @@ 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 $archive_file '$file' $DEV_NULL]";
-      system("$zip -m$use_path $archive_file \"$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";
     }
   }
   if (@deleted) {
-    print "Trashed [@deleted].\n";
+    if ($DEBUG_FEISTY_MEOW != "") {
+      print "Trashed [@deleted].\n";
+    }
     open(REPORT, ">>$TMP/zz_safedel_report.txt");
 
     local($printable_date) = scalar(localtime());
@@ -146,7 +148,11 @@ sub safedel {
     print REPORT $printable_date . " -- from [@deleted]\n";
     close(REPORT);
   } else {
-    print "No files were deleted.\n";
+#hmmm: oh good, and we should always bug people about nothing having been done?
+#      this is especially tiresome when our own scripts cause safedel to be invoked,
+#      since then they are automatically noisy and blathery.
+#hmmm: make this into a debug option. 
+#    print "No files were deleted.\n";
   }
 }