X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fzpool%2Fzpool_main.c;h=2632e8c3bd6924a0b626c0077ce9ef9403739ac4;hb=refs%2Fheads%2Frertzinger%2Ffeature-zpool-get--p;hp=b96fbe4ace5bfffe5e1acc385df2a0cfb71d4c70;hpb=a36bf1149d7408fde273851350c0ef6c0e4fe989;p=zfs.git diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c index b96fbe4..2632e8c 100644 --- a/cmd/zpool/zpool_main.c +++ b/cmd/zpool/zpool_main.c @@ -265,7 +265,7 @@ get_usage(zpool_help_t idx) { case HELP_EVENTS: return (gettext("\tevents [-vHfc]\n")); case HELP_GET: - return (gettext("\tget <\"all\" | property[,...]> " + return (gettext("\tget [-p] <\"all\" | property[,...]> " " ...\n")); case HELP_SET: return (gettext("\tset \n")); @@ -3098,6 +3098,9 @@ zpool_do_list(int argc, char **argv) argc -= optind; argv += optind; + fprintf(stderr, "argc = %d\n", argc); + for (c=0; cpl_prop, value, - sizeof (value), &srctype) != 0) + if (zpool_get_prop_literal(zhp, pl->pl_prop, value, + sizeof (value), &srctype, cbp->cb_literal) != 0) continue; zprop_print_one_property(zpool_get_name(zhp), cbp, @@ -5483,9 +5486,26 @@ zpool_do_get(int argc, char **argv) { zprop_get_cbdata_t cb = { 0 }; zprop_list_t fake_name = { 0 }; - int ret; + int c, ret; - if (argc < 2) { + /* check options */ + while ((c = getopt(argc, argv, "p")) != -1) { + switch (c) { + case 'p': + cb.cb_literal = B_TRUE; + break; + + case '?': + (void) fprintf(stderr, gettext("invalid option '%c'\n"), + optopt); + usage(B_FALSE); + } + } + + argc -= optind; + argv += optind; + + if (argc < 1) { (void) fprintf(stderr, gettext("missing property " "argument\n")); usage(B_FALSE); @@ -5499,7 +5519,7 @@ zpool_do_get(int argc, char **argv) cb.cb_columns[3] = GET_COL_SOURCE; cb.cb_type = ZFS_TYPE_POOL; - if (zprop_get_list(g_zfs, argv[1], &cb.cb_proplist, + if (zprop_get_list(g_zfs, argv[0], &cb.cb_proplist, ZFS_TYPE_POOL) != 0) usage(B_FALSE); @@ -5510,7 +5530,7 @@ zpool_do_get(int argc, char **argv) cb.cb_proplist = &fake_name; } - ret = for_each_pool(argc - 2, argv + 2, B_TRUE, &cb.cb_proplist, + ret = for_each_pool(argc - 1, argv + 1, B_TRUE, &cb.cb_proplist, get_callback, &cb); if (cb.cb_proplist == &fake_name)