getting some screwy messages about chdir from perl.
[feisty_meow.git] / scripts / archival / shared_snarfer.pl
index fc6c4f3cb6564ec7f4a32153e94e41832b35a8a6..c6b9491071892868fa9c4a1beeca8e8f811345b2 100644 (file)
 ###############################################################################
 
 require "filename_helper.pl";
-require "hostname.pl";
-require "importenv.pl";
 require "inc_num.pl";
 
 use Cwd;
+use Sys::Hostname;
 use File::Which;
+use Env qw(FEISTY_MEOW_SCRIPTS TMP);
 
-#hmmm: maybe move this to a utility script file.
 $null_log = "/dev/null";
-#hmmm: move especially this check to a script file, and recast anything
-#      referring to Windows_NT to it.
-if ( ("$OS" =~ /[wW][iI][nN]/) || ("$OS" =~ /[Oo][Ss]2/)
-    || ("$OS" =~ /[Dd][Oo][Ss]/) ) {
-  $null_log = "nul"
-}
-#print "nul log=$null_log \n";
 
 $TMP =~ s/\\/\//g;  # fix the temp variable for ms-winders.
 
@@ -82,7 +74,8 @@ sub initialize_snarfer {
 
 # returns the current hostname, but without any domain included.
 sub short_hostname {
-  local($temphost) = &hostname();
+  local($temphost) = hostname();
+#&hostname();
   $temphost =~ s/([^.]*)\..*/\1/;
   return &lower($temphost);
 }
@@ -92,12 +85,6 @@ sub short_hostname {
 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";
-  }
-
   local($date_part) = `$date_tool +%Y-%m-%d-%H%M`;
   while ($date_part =~ /[\r\n]$/) { chop $date_part; }
   local($host) = &short_hostname();
@@ -142,7 +129,9 @@ sub chdir_to_top {
     # magic to get the paths to work right.
     local($drive) = substr($directory, 0, 4);  # get just drive letter biz.
 #print "going to change to $drive\n";
-    chdir($drive);
+    if (length($drive) > 0) {
+      chdir($drive);
+    }
 #print "cwd now=" . cwd() . "\n";
     $directory = substr($directory, 4);  # rip off absolutist path.
 #print "using dir now as $directory\n";
@@ -193,8 +182,8 @@ sub snarfer {
   }
 
   local($outcome) = 0xff & system $tar_tool, 
-      "-rf", &msys_canonicalize($target_file), @excludes,
-      "--files-from=" . &msys_canonicalize($temp_file);
+      "-rf", &canonicalize($target_file), @excludes,
+      "--files-from=" . &canonicalize($temp_file);
   if ($outcome) {
     unlink($temp_file);
     die("failure to archive");
@@ -233,7 +222,7 @@ sub snarf_file_list {
     }
     local($outcome) = 0xff & system $tar_tool,
 #"--directory=" . "$root",
-        @extra_flags, "-rf", &msys_canonicalize($target_file), @excludes, $i;
+        @extra_flags, "-rf", &canonicalize($target_file), @excludes, $i;
     if ($outcome) { die("failure to archive"); }
   }
   chdir("$currdir");
@@ -269,7 +258,7 @@ sub remove_from_backup {
 #print "remove_from_backup: pref=$prefix, num=$number, patt=$pattern,\n";
   local($target_file) = &snarf_name($prefix, $number);
 
-  open(TARPROC, "$tar_tool --delete -f " . &msys_canonicalize($target_file)
+  open(TARPROC, "$tar_tool --delete -f " . &canonicalize($target_file)
       . " \"$pattern\" 2>$null_log |");
   <TARPROC>;
 }
@@ -382,7 +371,7 @@ sub backup_number {
   chdir($TMP);
 
   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";
@@ -391,7 +380,7 @@ sub backup_number {
   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);
@@ -460,7 +449,7 @@ sub restore_archive {
   }
 
   local($outcome) = 0xff & system $tar_tool, "-xzf",
-      &msys_canonicalize($filename);
+      &canonicalize($filename);
   if ($outcome) { die("failure to undo archive"); }
 
   local($outcome) =