projects
/
feisty_meow.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
falling back if which is not a valid command.
[feisty_meow.git]
/
scripts
/
archival
/
shared_snarfer.pl
diff --git
a/scripts/archival/shared_snarfer.pl
b/scripts/archival/shared_snarfer.pl
index 4a3d51d1aa36acc1d1083e708cd54d07d16421af..998cc5f72bd55abd84b5e145aab7f598e832b3ed 100644
(file)
--- a/
scripts/archival/shared_snarfer.pl
+++ b/
scripts/archival/shared_snarfer.pl
@@
-177,7
+177,7
@@
sub snarfer {
chdir($root);
local($outcome) = 0;
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");
# }
# 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 {
sub snarf_by_pattern {
- local($
dir, $pattern
) = @_;
+ local($
prefix, $dir, $pattern, $extra_component
) = @_;
# print "dir = $dir and patt = $pattern\n";
# 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 "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; }
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) =
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.
if ($outcome) { die("failure to normalize permissions"); }
# remove any links that might have crept in; these can cause mischief.