X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Farchival%2Fshared_snarfer.pl;h=998cc5f72bd55abd84b5e145aab7f598e832b3ed;hb=a6d593934f34d35642cdc8a79421404560f89fe1;hp=4a3d51d1aa36acc1d1083e708cd54d07d16421af;hpb=e1beec97f7b8834548d74782e577684fe16910e4;p=feisty_meow.git diff --git a/scripts/archival/shared_snarfer.pl b/scripts/archival/shared_snarfer.pl index 4a3d51d1..998cc5f7 100644 --- a/scripts/archival/shared_snarfer.pl +++ b/scripts/archival/shared_snarfer.pl @@ -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.