summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>2011-09-06 15:07:55 -0700
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>2011-09-06 15:28:45 -0700
commitb1da7ec0dd74068b0673127839d1cc95379f76f1 (patch)
tree62de42fc023f2c4fd780e2dace87311bcaff1841
parentba05e5e27b80ac4daea08df6120580bcc3484a9e (diff)
downloadceph-b1da7ec0dd74068b0673127839d1cc95379f76f1.tar.gz
cosd.cc: use new argument parsing functions
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
-rw-r--r--src/cosd.cc37
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();