made snarf by pattern support an extra directory component.
added quoting so that paths with spaces should work better.
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");
# }
# recursively scoops up a directory hierarchy.
sub backup_hierarchy {
local($prefix, $number, $root, $filepart) = @_;
-#print "backup_hierarchy: pref=$prefix, num=$number, root=$root, filepart=$filepart\n";
+print "backup_hierarchy: pref=$prefix, num=$number, root=$root, filepart=$filepart\n";
local(@locus_temp) = &glob_list($root);
local($save_root) = $root;
local($root) = $locus_temp[0];
}
}
-# 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*");
-# print "dir contents: @dir_contents\n";
+ @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));
}
}
local($number) = &retrieve_number("aa_backup");
# variables used throughout here.
-local($base) = &snarf_prefix("feisty_meow");
-local($snarf_file) = &snarf_name($base, $number);
+local($snarf_file_base) = &snarf_prefix("feisty_meow");
+local($snarf_file) = &snarf_name($snarf_file_base, $number);
# store the archive number in the file for retrieval on the other side.
-&backup_number("aa_backup", $base, $number);
+&backup_number("aa_backup", $snarf_file_base, $number);
# the top directory where everything we're grabbing lives.
local($root) = &canonicalize("$HOME/feisty_meow");
# grab the top level stuff.
-&backup_files($base, $number, $root, ".", ("*.txt", "make*", ".gitignore"));
+&backup_files($snarf_file_base, $number, $root, ".", ("*.txt", "make*", ".gitignore"));
# get the documentation directory.
-&backup_hierarchy($base, $number, "$root", "docs");
+&backup_hierarchy($snarf_file_base, $number, "$root", "docs");
###
#oldversion
-#&snarfer($base, $number, $root, "docs", ("-maxdepth", "1"));
+#&snarfer($snarf_file_base, $number, $root, "docs", ("-maxdepth", "1"));
# get an extra folder we like.
-#&backup_hierarchy($base, $number, "$root", "docs/text_examples");
+#&backup_hierarchy($snarf_file_base, $number, "$root", "docs/text_examples");
###
# get our databases that we ship with the sources.
-&backup_hierarchy($base, $number, $root, "database");
+&backup_hierarchy($snarf_file_base, $number, $root, "database");
# get all the yeti scripts hierarchy in there.
-&backup_hierarchy($base, $number, $root, "scripts");
+&backup_hierarchy($snarf_file_base, $number, $root, "scripts");
# get all C++ code project hierarchies.
-&backup_hierarchy($base, $number, "$root", "nucleus");
-&backup_hierarchy($base, $number, "$root", "octopi");
-&backup_hierarchy($base, $number, "$root", "graphiq");
+&backup_hierarchy($snarf_file_base, $number, "$root", "nucleus");
+&backup_hierarchy($snarf_file_base, $number, "$root", "octopi");
+&backup_hierarchy($snarf_file_base, $number, "$root", "graphiq");
# grab the production assets.
-&backup_files($base, $number, $root, "production", ("*.ini", "make*"));
-&backup_hierarchy($base, $number, "$root", "production/setup_src");
+&backup_files($snarf_file_base, $number, $root, "production", ("*.ini", "make*"));
+&backup_hierarchy($snarf_file_base, $number, "$root", "production/setup_src");
# now rename the file so only the unpacker can access it.
&rename_archive($snarf_file);
local($number) = &retrieve_number("aa_backup");
# variables used throughout.
-local($base) = snarf_prefix("linux_config");
-local($snarf_file) = &snarf_name($base, $number);
+local($snarf_file_base) = snarf_prefix("linux_config");
+local($snarf_file) = &snarf_name($snarf_file_base, $number);
# store the current archive number in the file for retrieval on the
# other side.
-&backup_number("aa_backup", $base, $number);
+&backup_number("aa_backup", $snarf_file_base, $number);
# write a little file showing the disk status.
local($infofile) = $HOME . "/disk_info.txt";
print INF "\n";
close(INF);
system("fdisk -l >>$HOME/disk_info.txt");
-&backup_files($base, $number, $HOME, ".", ("disk_info.txt"));
+&backup_files($snarf_file_base, $number, $HOME, ".", ("disk_info.txt"));
unlink $infofile;
# backup the dpkg info.
-&backup_files($base, $number, "/", "var/lib/dpkg", ("status*"));
+&backup_files($snarf_file_base, $number, "/", "var/lib/dpkg", ("status*"));
# backup the crucial hierarchies in /var...
-&backup_hierarchy($base, $number, "/", "var/named");
-###not good: &backup_hierarchy($base, $number, "/", "var/lib/mysql");
+&backup_hierarchy($snarf_file_base, $number, "/", "var/named");
+###not good: &backup_hierarchy($snarf_file_base, $number, "/", "var/lib/mysql");
###the mysql snarf is not necessarily usable, since we really should be
###backing up the databases by another means than this.
-&backup_hierarchy($base, $number, "/", "var/lib/named/master");
-&backup_hierarchy($base, $number, "/", "var/lib/webalizer");
+&backup_hierarchy($snarf_file_base, $number, "/", "var/lib/named/master");
+&backup_hierarchy($snarf_file_base, $number, "/", "var/lib/webalizer");
# snag the grub bootloader files.
-&backup_hierarchy($base, $number, "/", "boot/grub");
+&backup_hierarchy($snarf_file_base, $number, "/", "boot/grub");
# now get the entire /etc hierarchy...
-&backup_hierarchy($base, $number, "/", "etc");
+&backup_hierarchy($snarf_file_base, $number, "/", "etc");
# clean out extra files.
-&remove_from_backup($base, $number, "etc/cups/ppds.dat*");
-&remove_from_backup($base, $number, "etc/httpd/conf/ssl.crt/ca-bundle.crt");
-&remove_from_backup($base, $number, "etc/locale/*");
-&remove_from_backup($base, $number, "etc/opt/kde3/share/services/ksycoca");
-&remove_from_backup($base, $number, "etc/preload.d/*");
-&remove_from_backup($base, $number, "etc/rmt");
-&remove_from_backup($base, $number, "etc/termcap");
-&remove_from_backup($base, $number, "etc/X11/X");
-&remove_from_backup($base, $number, "etc/X11/xkb/*");
-&remove_from_backup($base, $number, "*.bak");
-&remove_from_backup($base, $number, "*.cache");
-&remove_from_backup($base, $number, "*.crt");
-&remove_from_backup($base, $number, "*.old");
-&remove_from_backup($base, $number, "*.schemas");
-&remove_from_backup($base, $number, "*.so");
-&remove_from_backup($base, $number, "*.xml");
+&remove_from_backup($snarf_file_base, $number, "etc/cups/ppds.dat*");
+&remove_from_backup($snarf_file_base, $number, "etc/httpd/conf/ssl.crt/ca-bundle.crt");
+&remove_from_backup($snarf_file_base, $number, "etc/locale/*");
+&remove_from_backup($snarf_file_base, $number, "etc/opt/kde3/share/services/ksycoca");
+&remove_from_backup($snarf_file_base, $number, "etc/preload.d/*");
+&remove_from_backup($snarf_file_base, $number, "etc/rmt");
+&remove_from_backup($snarf_file_base, $number, "etc/termcap");
+&remove_from_backup($snarf_file_base, $number, "etc/X11/X");
+&remove_from_backup($snarf_file_base, $number, "etc/X11/xkb/*");
+&remove_from_backup($snarf_file_base, $number, "*.bak");
+&remove_from_backup($snarf_file_base, $number, "*.cache");
+&remove_from_backup($snarf_file_base, $number, "*.crt");
+&remove_from_backup($snarf_file_base, $number, "*.old");
+&remove_from_backup($snarf_file_base, $number, "*.schemas");
+&remove_from_backup($snarf_file_base, $number, "*.so");
+&remove_from_backup($snarf_file_base, $number, "*.xml");
# now rename the file so only the unpacker can access it.
&rename_archive($snarf_file);
# variables for directory location to backup and the file to dump it in.
local($root) = "$HOME";
-local($base) = &snarf_prefix("notes");
-local($snarf_file) = &snarf_name($base, $number);
+local($snarf_file_base) = &snarf_prefix("notes");
+local($snarf_file) = &snarf_name($snarf_file_base, $number);
# store the archive number in the file for retrieval on the other side.
-&backup_number("aa_backup", $base, $number);
+&backup_number("aa_backup", $snarf_file_base, $number);
############################################################################
# get top level text files and other potentially important items...
-&backup_files($base, $number, $root, ".", ("*.html", "*.txt"));
+&backup_files($snarf_file_base, $number, $root, ".", ("*.html", "*.txt"));
# backup all the hierarchies in our quartz directory.
-&backup_hierarchy($base, $number, "$root", "quartz");
+&backup_hierarchy($snarf_file_base, $number, "$root", "quartz");
# gather any directories in our home that match these often recurring patterns.
-&snarf_by_pattern("$root", "notes");
-&snarf_by_pattern("$root", "project");
-&snarf_by_pattern("$root", "issue");
-&snarf_by_pattern("$root", "idea");
-&snarf_by_pattern("$root", "crucial");
-&snarf_by_pattern("$root", "list");
-&snarf_by_pattern("$root", "task");
+&snarf_by_pattern($snarf_file_base, "$root", "notes");
+&snarf_by_pattern($snarf_file_base, "$root", "project");
+&snarf_by_pattern($snarf_file_base, "$root", "issue");
+&snarf_by_pattern($snarf_file_base, "$root", "idea");
+&snarf_by_pattern($snarf_file_base, "$root", "crucial");
+&snarf_by_pattern($snarf_file_base, "$root", "list");
+&snarf_by_pattern($snarf_file_base, "$root", "task");
+
+# backup additional items from our Ubuntu One folder.
+&snarf_by_pattern($snarf_file_base, "$root", "notes", "Ubuntu One");
############################################################################
local($number) = &retrieve_number("aa_backup");
# variables used throughout here.
-local($base) = &snarf_prefix("opensim_config");
-local($snarf_file) = &snarf_name($base, $number);
+local($snarf_file_base) = &snarf_prefix("opensim_config");
+local($snarf_file) = &snarf_name($snarf_file_base, $number);
# store the archive number in the file for retrieval on the other side.
-&backup_number("aa_backup", $base, $number);
+&backup_number("aa_backup", $snarf_file_base, $number);
# the top directory where everything we're grabbing lives.
local($root) = &canonicalize(&glob_list("$HOME/opensim"));
# grab the top level stuff.
-#&backup_files($base, $number, $HOME, ".",
+#&backup_files($snarf_file_base, $number, $HOME, ".",
# ("*.sh"));
-&backup_files($base, $number, $root, ".",
+&backup_files($snarf_file_base, $number, $root, ".",
("*.sh"));
# snag the main config files.
-&backup_files($base, $number, $root, "bin",
+&backup_files($snarf_file_base, $number, $root, "bin",
("OpenSim.ini", "Robust.ini", "OpenSim.exe.config", "Robust.exe.config"));
# snag the configuration include file.
-&backup_files($base, $number, $root, "bin/config-include", ("GridCommon.ini"));
+&backup_files($snarf_file_base, $number, $root, "bin/config-include", ("GridCommon.ini"));
# get the region definitions.
-&backup_hierarchy($base, $number, "$root", "bin/Regions");
+&backup_hierarchy($snarf_file_base, $number, "$root", "bin/Regions");
# now rename the file so only the unpacker can access it.
&rename_archive($snarf_file);
# variables for directory location to backup and the file to dump it in.
local($root) = "$HOME";
-local($base) = snarf_prefix("$USER");
-local($snarf_file) = &snarf_name($base, $number);
+local($snarf_file_base) = snarf_prefix("$USER");
+local($snarf_file) = &snarf_name($snarf_file_base, $number);
# store the archive number in the file for retrieval on the other side.
-&backup_number("aa_backup", $base, $number);
+&backup_number("aa_backup", $snarf_file_base, $number);
############################################################################
# backup all the config info for kde.
-&backup_hierarchy($base, $number, "$root", ".kde");
+&backup_hierarchy($snarf_file_base, $number, "$root", ".kde");
# get any dot files ending in "rc", or with "bash" or "profile" in them, or
# that start with "x".
-&backup_files($base, $number, $root, ".",
+&backup_files($snarf_file_base, $number, $root, ".",
("*rc", ".*bash*", ".*profile*", ".x*", ));
# get the ssh configuration files.
-&backup_hierarchy($base, $number, "$root", ".ssh");
+&backup_hierarchy($snarf_file_base, $number, "$root", ".ssh");
# now rename the file so only the unpacker can access it.
&rename_archive($snarf_file);