From: Jin Cai Date: Tue, 11 Jul 2017 11:23:49 +0000 (+0800) Subject: tools/rbd_nbd: add version show support X-Git-Tag: v12.1.1~70^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F16254%2Fhead;p=ceph.git tools/rbd_nbd: add version show support Signed-off-by: Jin Cai --- diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc index 84fd0e476a85..5e7f98dcaa4d 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -46,6 +46,7 @@ #include "common/TextTable.h" #include "common/ceph_argparse.h" #include "common/Preforker.h" +#include "common/version.h" #include "global/global_init.h" #include "global/signal_handler.h" @@ -99,6 +100,9 @@ static enum { #define RBD_NBD_BLKSIZE 512UL +#define HELP_INFO 1 +#define VERSION_INFO 2 + #ifdef CEPH_BIG_ENDIAN #define ntohll(a) (a) #elif defined(CEPH_LITTLE_ENDIAN) @@ -931,7 +935,9 @@ static int parse_args(vector& args, std::ostream *err_msg, Config * for (i = args.begin(); i != args.end(); ) { if (ceph_argparse_flag(args, i, "-h", "--help", (char*)NULL)) { - return -ENODATA; + return HELP_INFO; + } else if (ceph_argparse_flag(args, i, "-v", "--version", (char*)NULL)) { + return VERSION_INFO; } else if (ceph_argparse_witharg(args, i, &cfg->devpath, "--device", (char *)NULL)) { } else if (ceph_argparse_witharg(args, i, &cfg->nbds_max, err, "--nbds_max", (char *)NULL)) { if (!err.str().empty()) { @@ -1020,10 +1026,14 @@ static int rbd_nbd(int argc, const char *argv[]) std::ostringstream err_msg; r = parse_args(args, &err_msg, &cfg); - if (r == -ENODATA) { + if (r == HELP_INFO) { usage(); return 0; - } else if (r < 0) { + } else if (r == VERSION_INFO) { + std::cout << pretty_version_to_str() << std::endl; + return 0; + } + else if (r < 0) { cerr << err_msg.str() << std::endl; return r; }