added dereferencing of links during snarf
[feisty_meow.git] / scripts / archival / shared_snarfer.pl
index 2d778b4aac7d84b6ff6e24583475b13f99e5f9c0..3a24cc4eb9ff584770c2a4761842366c158e69a8 100644 (file)
@@ -44,9 +44,10 @@ $TMP =~ s/\\/\//g;  # fix the temp variable for ms-winders.
     "octalforty.Wizardby", "*.obr", "*.opt", "packages", 
     "*.pch", "*.pdb", "*.plg", "*.r$p", "*.rcs", "Release",
     "*.res", "*.RES", "*.rws", "*.sbr", "*.scc", "*.spx", "*.stackdump",
+    "Steam",
     "*.sdf", "*.suo", ".svn", "*.sym", "*.td", "*.tds", "*.tdw", "*.tlb",
     "*.trw", "*.tmp", "*.tr", "*.user", "*_version.h", "*_version.rc",
-    "*.vspscc", "waste");
+    "*.vspscc", "waste", "zeitgeist");
 #print "junk list=@junk_file_list\n";
 @excludes = ();
 for (local($i) = 0; $i < scalar(@junk_file_list); $i++) {
@@ -84,9 +85,12 @@ sub short_hostname {
 # a timestamp and hostname.
 sub snarf_prefix {
   local($base) = @_;
+
+#hmmm: extract this shared code to new function (also in safedel)
   $date_tool = "date";
   local($date_part) = `$date_tool +%Y-%m-%d-%H%M`;
   while ($date_part =~ /[\r\n]$/) { chop $date_part; }
+
   local($host) = &short_hostname();
   while ($host =~ /[\r\n]$/) { chop $host; }
   $base = $base . "_" . $host . "_" . $date_part;
@@ -179,10 +183,11 @@ sub snarfer {
     push(@missing_log, $base);
   }
 
-print "snarfer function assumes msys canonicalization is appropriate--not cygwin compat.\n";
   local($outcome) = 0xff & system $tar_tool, 
-      "-rf", &msys_canonicalize($target_file), @excludes,
-      "--files-from=" . &msys_canonicalize($temp_file);
+#hmmm: trying to dereference symbolic links and stop missing stuff.
+"-h",
+      "-rf", &canonicalize($target_file), @excludes,
+      "--files-from=" . &canonicalize($temp_file);
   if ($outcome) {
     unlink($temp_file);
     die("failure to archive");
@@ -205,6 +210,7 @@ sub snarf_file_list {
   local($target_file) = &snarf_name($prefix, $number);
 
   local($currdir) = cwd();
+#print "got root as: '$root'\n";
   chdir("$root");
 
   local(@files) = &glob_list($file_pattern);
@@ -219,10 +225,12 @@ sub snarf_file_list {
     if ($i =~ /^\.\//) {
       $i = substr $i, 2, length($i) - 2;
     }
-print "snarf_file_list function assumes msys canonicalization is appropriate--not cygwin compat.\n";
     local($outcome) = 0xff & system $tar_tool,
 #"--directory=" . "$root",
-        @extra_flags, "-rf", &msys_canonicalize($target_file), @excludes, $i;
+        @extra_flags, 
+#hmmm: trying to dereference symbolic links and stop missing stuff.
+"-h",
+"-rf", &canonicalize($target_file), @excludes, $i;
     if ($outcome) { die("failure to archive"); }
   }
   chdir("$currdir");
@@ -258,8 +266,7 @@ sub remove_from_backup {
 #print "remove_from_backup: pref=$prefix, num=$number, patt=$pattern,\n";
   local($target_file) = &snarf_name($prefix, $number);
 
-print "remove_from_backup function assumes msys canonicalization is appropriate--not cygwin compat.\n";
-  open(TARPROC, "$tar_tool --delete -f " . &msys_canonicalize($target_file)
+  open(TARPROC, "$tar_tool --delete -f " . &canonicalize($target_file)
       . " \"$pattern\" 2>$null_log |");
   <TARPROC>;
 }
@@ -371,9 +378,8 @@ sub backup_number {
   local($currdir) = cwd();
   chdir($TMP);
 
-print "backup_number function assumes msys canonicalization is appropriate--not cygwin compat.\n";
   local($outcome) = 0xff & system $tar_tool, "-cf",
-      &msys_canonicalize($target_file), &msys_canonicalize($number_file);
+      &canonicalize($target_file), &canonicalize($number_file);
   if ($outcome) { die("failure to archive"); }
 
   local($prefix_file) = "prefix.bac";
@@ -382,7 +388,7 @@ print "backup_number function assumes msys canonicalization is appropriate--not
   close(NUM_PREFIX);
 
   $outcome = 0xff & system $tar_tool, "-rf",
-      &msys_canonicalize($target_file), &msys_canonicalize($prefix_file);
+      &canonicalize($target_file), &canonicalize($prefix_file);
   if ($outcome) { die("failure to archive"); }
   unlink($prefix_file);
   chdir($currdir);
@@ -450,13 +456,12 @@ sub restore_archive {
     $filename = "../" . $filename;
   }
 
-print "restore_archive function assumes msys canonicalization is appropriate--not cygwin compat.\n";
   local($outcome) = 0xff & system $tar_tool, "-xzf",
-      &msys_canonicalize($filename);
+      &canonicalize($filename);
   if ($outcome) { die("failure to undo archive"); }
 
   local($outcome) =
-      0xff & system "bash", "$FEISTY_MEOW_SCRIPTS/files/normal_perm.sh", ".";
+      0xff & system "bash", "$FEISTY_MEOW_SCRIPTS/security/normal_perm.sh", ".";
   if ($outcome) { die("failure to normalize permissions"); }
 
   # remove any links that might have crept in; these can cause mischief.