X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Ffiles%2Fsafedel.pl;h=0fd25678045e95c10b5acef0852aec2bf64c578f;hb=5d05aedb7a37c567db9bdc7bc61012de9cdf3e1e;hp=60408046ebbc636138e838e037ce4e70bf404040;hpb=78d8d62332226c326575de341f613a29f3a98151;p=feisty_meow.git diff --git a/scripts/files/safedel.pl b/scripts/files/safedel.pl index 60408046..0fd25678 100644 --- a/scripts/files/safedel.pl +++ b/scripts/files/safedel.pl @@ -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"; @@ -97,6 +91,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 +108,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,11 +119,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 $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";