#include "emitter.h" #include "human_readable_format.h" #include "metadata.h" #include "xml_format.h" #include #include #include using namespace persistent_data; using namespace std; using namespace thin_provisioning; namespace po = boost::program_options; //---------------------------------------------------------------- namespace { void restore(string const &backup_file, string const &dev) { emitter::ptr hr = create_human_readable_emitter(cout); ifstream in(backup_file.c_str(), ifstream::in); parse_xml(in, hr); in.close(); } void usage(po::options_description const &desc) { cerr << "Usage: thin_restore [options]" << endl << endl; cerr << desc; } } int main(int argc, char **argv) { po::options_description desc("Options"); desc.add_options() ("help", "Produce help message") ("input,i", po::value(), "Input file") ("output,o", po::value(), "Output file") ; po::variables_map vm; po::store(po::command_line_parser(argc, argv).options(desc).run(), vm); po::notify(vm); if (vm.count("help")) { usage(desc); return 0; } if (vm.count("input") != 1) { cerr << "No input file provided." << endl; usage(desc); return 1; } if (vm.count("output") != 1) { cerr << "No output file provided." << endl; usage(desc); return 1; } restore(vm["input"].as(), vm["output"].as()); return 0; } //----------------------------------------------------------------