updated to remove some msys refs.
[feisty_meow.git] / scripts / archival / shared_snarfer.pl
index 00c41d3f98324a1a54137794e685ef2ed5122b3b..4424d61e4b9223aaa18ab78d41159c92cb316030 100644 (file)
@@ -93,10 +93,10 @@ sub snarf_prefix {
   local($base) = @_;
   $date_tool = "date";
 
-  if ($OS =~ /win/i) {
-    # just hope that this is running under msys in our build bin.
-    $date_tool = "$PRODUCTION_DIR/msys/bin/date";
-  }
+#  if ($OS =~ /win/i) {
+#    # just hope that this is running under msys in our build bin.
+#    $date_tool = "$PRODUCTION_DIR/msys/bin/date";
+#  }
 
   local($date_part) = `$date_tool +%Y-%m-%d-%H%M`;
   while ($date_part =~ /[\r\n]$/) { chop $date_part; }
@@ -192,6 +192,7 @@ 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);
@@ -231,6 +232,7 @@ 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;
@@ -269,6 +271,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)
       . " \"$pattern\" 2>$null_log |");
   <TARPROC>;
@@ -277,7 +280,7 @@ sub remove_from_backup {
 # recursively scoops up a directory hierarchy.
 sub backup_hierarchy {
   local($prefix, $number, $root, $filepart) = @_;
-print "backup_hierarchy: pref=$prefix, num=$number, root=$root, filepart=$filepart\n";
+#print "backup_hierarchy: pref=$prefix, num=$number, root=$root, filepart=$filepart\n";
   local(@locus_temp) = &glob_list($root);
   local($save_root) = $root;
   local($root) = $locus_temp[0];
@@ -329,16 +332,13 @@ sub backup_hierarchies {
 # used as an extra directory component after the main directory.
 sub snarf_by_pattern {
   local($prefix, $dir, $pattern, $extra_component) = @_;
-#  print "dir = $dir and patt = $pattern\n";
-  $extra_piece = "";
-  $dir_for_hierarchy = ".";
-  if (length($extra_component)) {
-    $extra_piece = "/" . $extra_component;
-    $dir_for_hierarchy = $extra_component;
+  local($had_extra) = length($extra_component) != 0;
+#print "snarf by pattern, dir = $dir, patt = $pattern, extra = $extra_component\n";
+  if ($had_extra) {
+    $dir = "$dir/$extra_component";
   }
-
-  @dir_contents = &glob_list("$dir$extra_piece/*$pattern*"); 
-  print "dir contents: @dir_contents\n";
+  @dir_contents = &glob_list("$dir/*$pattern*"); 
+#print "dir contents: @dir_contents\n";
 
   if (!scalar(@dir_contents)) {
     print "no '$pattern' directores were backed up in $dir.\n";
@@ -347,7 +347,17 @@ sub snarf_by_pattern {
   foreach $item (@dir_contents) {
     if ( ($item =~ /$pattern.*snarf/) || ($item =~ /$pattern.*tar/) ) { next; }
     if ( ! -d "$item" ) { next; }
-    &backup_hierarchy($prefix, $number, $dir, "$dir_for_hierarchy" . "/" . &basename($item));
+#print "now really planning to backup hier of $item\n";
+    # normal backup had no extra component.
+    local $upper_dir = &dirname($item);
+    local $dir_plus_base = &basename($item);
+    # if we did have an extra component, we do this a bit differently.
+    if ($had_extra) {
+      $upper_dir = &dirname( &dirname($item) );
+      $dir_plus_base = &basename( &dirname($item) ) . "/" . &basename($item);
+    }
+#print "using upper=$upper_dir and dir+base=$dir_plus_base\n";
+    &backup_hierarchy($prefix, $number, $upper_dir, $dir_plus_base);
   }
 }
 
@@ -374,6 +384,7 @@ 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);
   if ($outcome) { die("failure to archive"); }
@@ -452,6 +463,7 @@ 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);
   if ($outcome) { die("failure to undo archive"); }