From: Michael Vrable Date: Sat, 12 May 2007 03:54:39 +0000 (-0700) Subject: Write backup descriptor to a file, not stdout. X-Git-Url: http://git.vrable.net/?p=cumulus.git;a=commitdiff_plain;h=738a672b1a4a95eb24b785c9238594de99f8e314 Write backup descriptor to a file, not stdout. The backup descriptor names the object at the root of the snapshot, and lists all the segments needed. The filename used is currently fixed, though, and should later be based on the current time. --- diff --git a/scandir.cc b/scandir.cc index 079324a..30b8d45 100644 --- a/scandir.cc +++ b/scandir.cc @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -310,11 +311,15 @@ int main(int argc, char *argv[]) { block_buf = new char[LBS_BLOCK_SIZE]; - if (argc > 1) { - tss = new TarSegmentStore(argv[1]); - } else { - tss = new TarSegmentStore("."); - } + string backup_dest = "."; + + if (argc > 1) + backup_dest = argv[1]; + + tss = new TarSegmentStore(backup_dest); + + string desc_filename = backup_dest + "/snapshot.lbs"; + std::ofstream descriptor(desc_filename.c_str()); try { scanfile("."); @@ -332,14 +337,14 @@ int main(int argc, char *argv[]) root->checksum(); segment_list.insert(root->get_ref().get_segment()); - string r = root->get_ref().to_string(); - printf("\nroot: %s\n\n", r.c_str()); + descriptor << "root: " << root->get_ref().to_string() << "\n\n"; + delete root; - printf("segments:\n"); + descriptor << "segments:\n"; for (std::set::iterator i = segment_list.begin(); i != segment_list.end(); ++i) { - printf(" %s\n", i->c_str()); + descriptor << " " << *i << "\n"; } tss->sync();