falling back if which is not a valid command.
[feisty_meow.git] / scripts / archival / shared_snarfer.pl
index 4a3d51d1aa36acc1d1083e708cd54d07d16421af..998cc5f72bd55abd84b5e145aab7f598e832b3ed 100644 (file)
@@ -177,7 +177,7 @@ sub snarfer {
   chdir($root);
 
   local($outcome) = 0;
-  my @lines = qx( $find_tool $subdir @extra_flags "-type" "f" );
+  my @lines = qx( $find_tool "$subdir" @extra_flags "-type" "f" );
 #  if ( ($! != 0) || ($? != 0) ) {
 #    die("failure to find files in $subdir"); 
 #  }
@@ -324,22 +324,30 @@ sub backup_hierarchies {
   }
 }
 
-# grab up all the files in a directory (first parm) that are named matching
-# a simple text pattern (second parm).
+# grab up all the files in a directory (second parm) that are named matching
+# a simple text pattern (third parm).  if there is a fourth parameter, it is
+# used as an extra directory component after the main directory.
 sub snarf_by_pattern {
-  local($dir, $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;
+  }
 
-  @dir_contents = &glob_list("$dir/*$pattern*"); 
+  @dir_contents = &glob_list("$dir$extra_piece/*$pattern*"); 
 #  print "dir contents: @dir_contents\n";
 
   if (!scalar(@dir_contents)) {
-    print "no $pattern directores were backed up in $dir.\n";
+    print "no '$pattern' directores were backed up in $dir.\n";
   }
+  
   foreach $item (@dir_contents) {
     if ( ($item =~ /$pattern.*snarf/) || ($item =~ /$pattern.*tar/) ) { next; }
     if ( ! -d "$item" ) { next; }
-    &backup_hierarchy($base, $number, $item, ".");
+    &backup_hierarchy($prefix, $number, $dir, "$dir_for_hierarchy" . "/" . &basename($item));
   }
 }
 
@@ -449,7 +457,7 @@ sub restore_archive {
   if ($outcome) { die("failure to undo archive"); }
 
   local($outcome) =
-      0xff & system "bash", "$SHELLDIR/files/normal_perm.sh", ".";
+      0xff & system "bash", "$FEISTY_MEOW_SCRIPTS/files/normal_perm.sh", ".";
   if ($outcome) { die("failure to normalize permissions"); }
 
   # remove any links that might have crept in; these can cause mischief.