diff options
author | Colin Patrick McCabe <cmccabe@alumni.cmu.edu> | 2011-09-06 15:07:55 -0700 |
---|---|---|
committer | Colin Patrick McCabe <cmccabe@alumni.cmu.edu> | 2011-09-06 15:28:45 -0700 |
commit | b1da7ec0dd74068b0673127839d1cc95379f76f1 (patch) | |
tree | 62de42fc023f2c4fd780e2dace87311bcaff1841 | |
parent | ba05e5e27b80ac4daea08df6120580bcc3484a9e (diff) | |
download | ceph-b1da7ec0dd74068b0673127839d1cc95379f76f1.tar.gz |
cosd.cc: use new argument parsing functions
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
-rw-r--r-- | src/cosd.cc | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/src/cosd.cc b/src/cosd.cc index 7ff132723a3..82fa291901c 100644 --- a/src/cosd.cc +++ b/src/cosd.cc @@ -50,7 +50,6 @@ void usage() int main(int argc, const char **argv) { - DEFINE_CONF_VARS(usage); vector<const char*> args; argv_to_vec(argc, argv, args); env_to_vec(args); @@ -65,31 +64,41 @@ int main(int argc, const char **argv) bool mkkey = false; bool flushjournal = false; bool convertfilestore = false; - char *dump_pg_log = 0; - FOR_EACH_ARG(args) { - if (CEPH_ARGPARSE_EQ("mkfs", '\0')) { + std::string dump_pg_log; + + std::string val; + for (std::vector<const char*>::iterator i = args.begin(); i != args.end(); ) { + if (ceph_argparse_double_dash(args, i)) { + break; + } else if (ceph_argparse_flag(args, i, "-h", "--help", (char*)NULL)) { + usage(); + exit(0); + } else if (ceph_argparse_flag(args, i, "--mkfs", (char*)NULL)) { mkfs = true; - } else if (CEPH_ARGPARSE_EQ("mkjournal", '\0')) { + } else if (ceph_argparse_flag(args, i, "--mkjournal", (char*)NULL)) { mkjournal = true; - } else if (CEPH_ARGPARSE_EQ("mkkey", '\0')) { + } else if (ceph_argparse_flag(args, i, "--mkkey", (char*)NULL)) { mkkey = true; - } else if (CEPH_ARGPARSE_EQ("flush-journal", '\0')) { + } else if (ceph_argparse_flag(args, i, "--flush-journal", (char*)NULL)) { flushjournal = true; - } else if (CEPH_ARGPARSE_EQ("convert-filestore", '\0')) { + } else if (ceph_argparse_flag(args, i, "--convert-filestore", (char*)NULL)) { convertfilestore = true; - } else if (CEPH_ARGPARSE_EQ("dump-pg-log", '\0')) { - CEPH_ARGPARSE_SET_ARG_VAL(&dump_pg_log, OPT_STR); + } else if (ceph_argparse_witharg(args, i, &val, "--dump-pg-log", (char*)NULL)) { + dump_pg_log = val; } else { - derr << "unrecognized arg " << args[i] << dendl; - usage(); + ++i; } } + if (!args.empty()) { + derr << "unrecognized arg " << args[0] << dendl; + usage(); + } - if (dump_pg_log) { + if (!dump_pg_log.empty()) { common_init_finish(g_ceph_context); bufferlist bl; std::string error; - int r = bl.read_file(dump_pg_log, &error); + int r = bl.read_file(dump_pg_log.c_str(), &error); if (r >= 0) { PG::Log::Entry e; bufferlist::iterator p = bl.begin(); |