cache_restore --omit-clean-shutdown

This commit is contained in:
Joe Thornber
2013-10-29 12:46:23 +00:00
parent dcf4b0a99c
commit 31ce9a03fa
7 changed files with 38 additions and 16 deletions

View File

@ -23,20 +23,23 @@ namespace {
struct flags {
flags()
: metadata_version(1),
override_metadata_version(false) {
override_metadata_version(false),
clean_shutdown(true) {
}
optional<string> input;
optional<string> output;
uint32_t metadata_version;
bool override_metadata_version;
bool clean_shutdown;
};
int restore(flags const &fs) {
try {
block_manager<>::ptr bm = open_bm(*fs.output, block_io<>::READ_WRITE);
metadata::ptr md(new metadata(bm, metadata::CREATE));
emitter::ptr restorer = create_restore_emitter(md);
emitter::ptr restorer = create_restore_emitter(md, fs.clean_shutdown);
if (fs.override_metadata_version) {
cerr << "overriding" << endl;
@ -63,7 +66,8 @@ namespace {
<< " {-o|--output} <output device or file>" << endl
<< " {-V|--version}" << endl
<< endl
<< " {--debug-override-metadata-version} <integer>" << endl;
<< " {--debug-override-metadata-version} <integer>" << endl
<< " {--omit-clean-shutdown}" << endl;
}
}
@ -76,6 +80,7 @@ int main(int argc, char **argv)
char const *short_opts = "hi:o:V";
option const long_opts[] = {
{ "debug-override-metadata-version", required_argument, NULL, 0 },
{ "omit-clean-shutdown", no_argument, NULL, 1 },
{ "help", no_argument, NULL, 'h'},
{ "input", required_argument, NULL, 'i' },
{ "output", required_argument, NULL, 'o'},
@ -90,6 +95,10 @@ int main(int argc, char **argv)
fs.override_metadata_version = true;
break;
case 1:
fs.clean_shutdown = false;
break;
case 'h':
usage(cout, prog_name);
return 0;