summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2015-04-15 10:56:42 -0500
committerDavid Teigland <teigland@redhat.com>2015-04-15 10:56:42 -0500
commit5f6ac1c81274de2a3162764d7c4b14a80b3a5ae2 (patch)
treedaf048479e6a1898f8b44afd3bc1e11f54f317a7
parent9ce52430de8c8920e191aca8fd27be4dc8e2c96a (diff)
downloadlvm2-5f6ac1c81274de2a3162764d7c4b14a80b3a5ae2.tar.gz
dumpconfig: add --withfullcomments option
--withfullcomments prints all comment lines for each config option. --withcomments prints only the first comment line, which should be a short one-line summary of the option.
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/config/config.c8
-rw-r--r--lib/config/config.h3
-rw-r--r--man/lvm-dumpconfig.8.in7
-rw-r--r--tools/args.h1
-rw-r--r--tools/commands.h3
-rw-r--r--tools/dumpconfig.c2
7 files changed, 20 insertions, 5 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 9313ffb07..29e461ca4 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.119 -
==================================
+ Add --withfullcomments option to dumpconfig to print full comment.
Check for lvm binary in blkdeactivate and skip LVM processing if not present.
Add --enable-halvm and --disable-halvm options to lvmconf script.
Add --services, --mirrorservice and --startstopservices option to lvmconf.
diff --git a/lib/config/config.c b/lib/config/config.c
index b28472b8b..8f116cdd6 100644
--- a/lib/config/config.c
+++ b/lib/config/config.c
@@ -1541,15 +1541,19 @@ static int _out_prefix_fn(const struct dm_config_node *cn, const char *line, voi
cfg_def = cfg_def_get_item_p(cn->id);
- if (out->tree_spec->withcomments) {
+ if (out->tree_spec->withcomments || out->tree_spec->withfullcomments) {
_cfg_def_make_path(path, sizeof(path), cfg_def->id, cfg_def, 1);
fprintf(out->fp, "\n");
fprintf(out->fp, "%s# Configuration %s %s.\n", line, node_type_name, path);
if (cfg_def->comment) {
int pos = 0;
- while (_copy_one_line(cfg_def->comment, commentline, &pos, strlen(cfg_def->comment)))
+ while (_copy_one_line(cfg_def->comment, commentline, &pos, strlen(cfg_def->comment))) {
fprintf(out->fp, "%s# %s\n", line, commentline);
+ /* withcomments prints only the first comment line. */
+ if (!out->tree_spec->withfullcomments)
+ break;
+ }
}
if (cfg_def->flags & CFG_ADVANCED)
diff --git a/lib/config/config.h b/lib/config/config.h
index 5fe6a9f16..72c7606a6 100644
--- a/lib/config/config.h
+++ b/lib/config/config.h
@@ -144,7 +144,8 @@ struct config_def_tree_spec {
uint16_t version; /* tree at this LVM2 version */
unsigned ignoreadvanced:1; /* do not include advanced configs */
unsigned ignoreunsupported:1; /* do not include unsupported configs */
- unsigned withcomments:1; /* include comments */
+ unsigned withcomments:1; /* include first line of comment */
+ unsigned withfullcomments:1; /* include all comment lines */
unsigned withversions:1; /* include versions */
uint8_t *check_status; /* status of last tree check (currently needed for CFG_DEF_TREE_MISSING only) */
};
diff --git a/man/lvm-dumpconfig.8.in b/man/lvm-dumpconfig.8.in
index 04afce96b..a4289d9c0 100644
--- a/man/lvm-dumpconfig.8.in
+++ b/man/lvm-dumpconfig.8.in
@@ -22,6 +22,7 @@ lvm-dumpconfig \(em dump LVM configuration
.RB [ \-\-mergedconfig ]
.RB [ \-\-validate ]
.RB [ \-\-withcomments ]
+.RB [ \-\-withfullcomments ]
.RB [ \-\-withversions ]
.RB [ ConfigurationNode... ]
@@ -140,7 +141,11 @@ option is disabled.
.TP
.B \-\-withcomments
-Also dump comments for each configuration node.
+Dump a one line comment for each configuration node.
+
+.TP
+.B \-\-withfullcomments
+Dump a full comment for each configuration node.
.TP
.B \-\-withversions
diff --git a/tools/args.h b/tools/args.h
index a40cfb060..4a434575a 100644
--- a/tools/args.h
+++ b/tools/args.h
@@ -117,6 +117,7 @@ arg(version_ARG, '\0', "version", NULL, 0)
arg(vgmetadatacopies_ARG, '\0', "vgmetadatacopies", metadatacopies_arg, 0)
arg(virtualoriginsize_ARG, '\0', "virtualoriginsize", size_mb_arg, 0)
arg(withcomments_ARG, '\0', "withcomments", NULL, 0)
+arg(withfullcomments_ARG, '\0', "withfullcomments", NULL, 0)
arg(withversions_ARG, '\0', "withversions", NULL, 0)
arg(writebehind_ARG, '\0', "writebehind", int_arg, 0)
arg(writemostly_ARG, '\0', "writemostly", string_arg, ARG_GROUPABLE)
diff --git a/tools/commands.h b/tools/commands.h
index 719c507b7..b9c7a8b5e 100644
--- a/tools/commands.h
+++ b/tools/commands.h
@@ -70,11 +70,12 @@ xx(dumpconfig,
"\t[--mergedconfig]\n"
"\t[--validate]\n"
"\t[--withcomments]\n"
+ "\t[--withfullcomments]\n"
"\t[--withversions]\n"
"\t[ConfigurationNode...]\n",
atversion_ARG, configtype_ARG, file_ARG, ignoreadvanced_ARG,
ignoreunsupported_ARG, mergedconfig_ARG, metadataprofile_ARG,
- validate_ARG, withcomments_ARG, withversions_ARG)
+ validate_ARG, withcomments_ARG, withfullcomments_ARG, withversions_ARG)
xx(formats,
"List available metadata formats",
diff --git a/tools/dumpconfig.c b/tools/dumpconfig.c
index 09f2119e5..6d2108f0d 100644
--- a/tools/dumpconfig.c
+++ b/tools/dumpconfig.c
@@ -219,6 +219,8 @@ int dumpconfig(struct cmd_context *cmd, int argc, char **argv)
if (arg_count(cmd, withcomments_ARG))
tree_spec.withcomments = 1;
+ if (arg_count(cmd, withfullcomments_ARG))
+ tree_spec.withfullcomments = 1;
if (arg_count(cmd, withversions_ARG))
tree_spec.withversions = 1;