X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Farchival%2Fshared_snarfer.pl;h=91ee6d75a83c9f1f32183613a8b6c8517470ad92;hb=8f87c730e75e7caf5e22b9cca67c6b7f423a4e9f;hp=c6b9491071892868fa9c4a1beeca8e8f811345b2;hpb=cdc8710b5258c1f81ba49f697f04ed9c4939f4cd;p=feisty_meow.git diff --git a/scripts/archival/shared_snarfer.pl b/scripts/archival/shared_snarfer.pl index c6b94910..91ee6d75 100644 --- a/scripts/archival/shared_snarfer.pl +++ b/scripts/archival/shared_snarfer.pl @@ -36,7 +36,7 @@ $TMP =~ s/\\/\//g; # fix the temp variable for ms-winders. @missing_log = (); # these files are considered unimportant and won't be included in the archive. -@junk_file_list = ("*~", "*.$$$", "3rdparty", "*.aps", "*.bak", "binaries", +@junk_file_list = ("*~", "*.$$$", "*.aps", "*.bak", "binaries", "*.bsc", "*.cgl", "*.csm", "CVS", "Debug", "*.dll", "*.err", "*.exe", "generated_*", "*.git", "*.glb", "inprogress", "ipch", "*.llm", "*.log", "*.lnk", @@ -44,9 +44,10 @@ $TMP =~ s/\\/\//g; # fix the temp variable for ms-winders. "octalforty.Wizardby", "*.obr", "*.opt", "packages", "*.pch", "*.pdb", "*.plg", "*.r$p", "*.rcs", "Release", "*.res", "*.RES", "*.rws", "*.sbr", "*.scc", "*.spx", "*.stackdump", + "Steam", "*.sdf", "*.suo", ".svn", "*.sym", "*.td", "*.tds", "*.tdw", "*.tlb", "*.trw", "*.tmp", "*.tr", "*.user", "*_version.h", "*_version.rc", - "*.vspscc", "waste"); + "*.vspscc", "waste", "zeitgeist"); #print "junk list=@junk_file_list\n"; @excludes = (); for (local($i) = 0; $i < scalar(@junk_file_list); $i++) { @@ -84,9 +85,12 @@ sub short_hostname { # a timestamp and hostname. sub snarf_prefix { local($base) = @_; + +#hmmm: extract this shared code to new function (also in safedel) $date_tool = "date"; local($date_part) = `$date_tool +%Y-%m-%d-%H%M`; while ($date_part =~ /[\r\n]$/) { chop $date_part; } + local($host) = &short_hostname(); while ($host =~ /[\r\n]$/) { chop $host; } $base = $base . "_" . $host . "_" . $date_part; @@ -129,9 +133,7 @@ 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"; - if (length($drive) > 0) { - chdir($drive); - } + chdir($drive); #print "cwd now=" . cwd() . "\n"; $directory = substr($directory, 4); # rip off absolutist path. #print "using dir now as $directory\n"; @@ -166,7 +168,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 "-follow" "-type" "f" ); # if ( ($! != 0) || ($? != 0) ) { # die("failure to find files in $subdir"); # } @@ -182,6 +184,8 @@ sub snarfer { } local($outcome) = 0xff & system $tar_tool, +#hmmm: trying to dereference symbolic links and stop missing stuff. +"-h", "-rf", &canonicalize($target_file), @excludes, "--files-from=" . &canonicalize($temp_file); if ($outcome) { @@ -206,6 +210,7 @@ sub snarf_file_list { local($target_file) = &snarf_name($prefix, $number); local($currdir) = cwd(); +#print "got root as: '$root'\n"; chdir("$root"); local(@files) = &glob_list($file_pattern); @@ -222,7 +227,11 @@ sub snarf_file_list { } local($outcome) = 0xff & system $tar_tool, #"--directory=" . "$root", - @extra_flags, "-rf", &canonicalize($target_file), @excludes, $i; + +#hmmm: trying to dereference symbolic links and stop missing stuff. +"-h", + @extra_flags, +"-rf", &canonicalize($target_file), @excludes, $i; if ($outcome) { die("failure to archive"); } } chdir("$currdir"); @@ -379,7 +388,12 @@ sub backup_number { print NUM_PREFIX $number_prefix; close(NUM_PREFIX); - $outcome = 0xff & system $tar_tool, "-rf", + $outcome = 0xff & system $tar_tool, + +#hmmm: trying to dereference symbolic links and stop missing stuff. +"-h", + +"-rf", &canonicalize($target_file), &canonicalize($prefix_file); if ($outcome) { die("failure to archive"); } unlink($prefix_file); @@ -453,7 +467,7 @@ sub restore_archive { if ($outcome) { die("failure to undo archive"); } local($outcome) = - 0xff & system "bash", "$FEISTY_MEOW_SCRIPTS/files/normal_perm.sh", "."; + 0xff & system "bash", "$FEISTY_MEOW_SCRIPTS/security/normal_perm.sh", "."; if ($outcome) { die("failure to normalize permissions"); } # remove any links that might have crept in; these can cause mischief.