From 738a672b1a4a95eb24b785c9238594de99f8e314 Mon Sep 17 00:00:00 2001 From: Michael Vrable Date: Fri, 11 May 2007 20:54:39 -0700 Subject: [PATCH] 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. --- scandir.cc | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) 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(); -- 2.20.1