From 61293708e3f443e08307637c921f2f92f163175b Mon Sep 17 00:00:00 2001 From: Joe Thornber Date: Mon, 10 Oct 2011 16:45:32 +0100 Subject: [PATCH] command line processing for thin_restore --- thin_restore.cc | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/thin_restore.cc b/thin_restore.cc index 381c963..126e05f 100644 --- a/thin_restore.cc +++ b/thin_restore.cc @@ -2,16 +2,62 @@ #include "metadata.h" +#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) { + cerr << "not implemented" << endl; + } + + void usage(po::options_description const &desc) { + cerr << "Usage: thin_restore [options]" << endl << endl; + cerr << desc; + } +} + int main(int argc, char **argv) { - cerr << "not implemented yet" << endl; + 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; + } //----------------------------------------------------------------