From 3c532a97e358f92788fa586e6ccdeaff8db32bc3 Mon Sep 17 00:00:00 2001 From: komaln Date: Tue, 3 Jun 2008 08:03:14 +0000 Subject: [PATCH] b=14471 i=nathan, andreas To add -N option in lctl get_param which will print only path names. --- lustre/utils/lctl.c | 5 +++-- lustre/utils/lustre_cfg.c | 13 +++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lustre/utils/lctl.c b/lustre/utils/lctl.c index 85e4105..811da8c 100644 --- a/lustre/utils/lctl.c +++ b/lustre/utils/lctl.c @@ -120,9 +120,10 @@ command_t cmdlist[] = { {"local_param", jt_lcfg_param, 0, "set a temporary, local param\n" "usage: local_param ...\n"}, {"get_param", jt_lcfg_getparam, 0, "get the Lustre or LNET parameter\n" - "usage: get_param [-n] path/to/param/file \n" + "usage: get_param [-n | -N] path/to/param/file \n" "Get the value of Lustre or LNET parameter from the specified path\n" - "Use '-n' to disable printing of the key name when printing values."}, + "Use '-n' to disable printing of the key name when printing values.\n" + "Use '-N' to print only path names and not the values."}, {"set_param", jt_lcfg_setparam, 0, "set the Lustre or LNET parameter\n" "usage: set_param [-n] path/to/param/file value\n" "Set the value of the Lustre or LNET parameter at the specified path\n" diff --git a/lustre/utils/lustre_cfg.c b/lustre/utils/lustre_cfg.c index 865d115..c9337bf 100644 --- a/lustre/utils/lustre_cfg.c +++ b/lustre/utils/lustre_cfg.c @@ -547,13 +547,18 @@ static char *strnchr(const char *p, char c, size_t n) int jt_lcfg_getparam(int argc, char **argv) { int fp; - int rc = 0, i, show_path = 0; + int rc = 0, i, show_path = 0, only_path = 0; char pattern[PATH_MAX]; char *path, *tmp, *buf; glob_t glob_info; - if (argc == 3 && strcmp(argv[1], "-n") == 0) { + if (argc == 3 && (strcmp(argv[1], "-n") == 0 || + strcmp(argv[1], "-N") == 0)) { path = argv[2]; + if (strcmp(argv[1], "-N") == 0) { + only_path = 1; + show_path = 1; + } } else if (argc == 2) { show_path = 1; path = argv[1]; @@ -596,6 +601,10 @@ int jt_lcfg_getparam(int argc, char **argv) char *filename; filename = strdup(glob_info.gl_pathv[i]); valuename = display_name(filename); + if (valuename && only_path) { + printf("%s\n", valuename); + continue; + } } /* Write the contents of file to stdout */ -- 1.8.3.1