X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=scandir.cc;h=4ffd0784e9042bc1a4dda46ce6a370b2502194f6;hb=def20364a3596d7b1fa4a07f3d3ee056cfff2d1e;hp=0820c168ac4af740a354ecd64037c5bfd7a59459;hpb=6c48cdf1bdd49f3913135da2f2b4cfd2248dc0a9;p=cumulus.git diff --git a/scandir.cc b/scandir.cc index 0820c16..4ffd078 100644 --- a/scandir.cc +++ b/scandir.cc @@ -554,7 +554,8 @@ void usage(const char *program) " (defaults to \"bzip2 -c\")\n" " --filter-extension=EXT\n" " string to append to segment files\n" - " (defaults to \".bz2\")\n", + " (defaults to \".bz2\")\n" + " --scheme=NAME optional name for this snapshot\n", program ); } @@ -564,6 +565,7 @@ int main(int argc, char *argv[]) string backup_source = "."; string backup_dest = ""; string localdb_dir = ""; + string backup_scheme = ""; while (1) { static struct option long_options[] = { @@ -572,6 +574,7 @@ int main(int argc, char *argv[]) {"filter", 1, 0, 0}, // 2 {"filter-extension", 1, 0, 0}, // 3 {"dest", 1, 0, 0}, // 4 + {"scheme", 1, 0, 0}, // 5 {NULL, 0, 0, 0}, }; @@ -601,6 +604,9 @@ int main(int argc, char *argv[]) case 4: // --dest backup_dest = optarg; break; + case 5: // --scheme + backup_scheme = optarg; + break; default: fprintf(stderr, "Unhandled long option!\n"); return 1; @@ -677,7 +683,8 @@ int main(int argc, char *argv[]) * snapshot. */ string database_path = localdb_dir + "/localdb.sqlite"; db = new LocalDb; - db->Open(database_path.c_str(), desc_buf); + db->Open(database_path.c_str(), desc_buf, + backup_scheme.size() ? backup_scheme.c_str() : NULL); /* Initialize the stat cache, for skipping over unchanged files. */ statcache = new StatCache; @@ -710,13 +717,18 @@ int main(int argc, char *argv[]) /* Write a backup descriptor file, which says which segments are needed and * where to start to restore this snapshot. The filename is based on the * current time. */ - string desc_filename = backup_dest + "/snapshot-" + desc_buf + ".lbs"; + string desc_filename = backup_dest + "/snapshot-"; + if (backup_scheme.size() > 0) + desc_filename += backup_scheme + "-"; + desc_filename = desc_filename + desc_buf + ".lbs"; std::ofstream descriptor(desc_filename.c_str()); descriptor << "Format: LBS Snapshot v0.1\n"; descriptor << "Producer: LBS " << lbs_version << "\n"; strftime(desc_buf, sizeof(desc_buf), "%Y-%m-%d %H:%M:%S %z", &time_buf); descriptor << "Date: " << desc_buf << "\n"; + if (backup_scheme.size() > 0) + descriptor << "Scheme: " << backup_scheme << "\n"; descriptor << "Root: " << backup_root << "\n"; descriptor << "Segments:\n";