From fe32df5c450da4fdeed6351c97cc319b3a9d6552 Mon Sep 17 00:00:00 2001 From: oetiker Date: Wed, 10 Dec 2008 12:42:46 +0000 Subject: [PATCH] rrdtool dump is now backward compatible with rrdtool 1.3 dump again. Default is --header=dtd and --no-header is an alias for --header=none git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1703 a5681a0c-68f1-0310-ab6d-d61299d08faa --- NEWS | 2 +- doc/rrddump.pod | 25 ++++++++++++++----------- src/rrd_dump.c | 17 ++++++++++++----- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/NEWS b/NEWS index 91107de..b31f0fd 100644 --- a/NEWS +++ b/NEWS @@ -13,4 +13,4 @@ tbd RRDdump ------- * no more spaces in output -* --no-header replaced with --header {xsd,dtd} +* additional option: --header {none,xsd,dtd} diff --git a/doc/rrddump.pod b/doc/rrddump.pod index 52c68b6..f822e8e 100644 --- a/doc/rrddump.pod +++ b/doc/rrddump.pod @@ -4,17 +4,12 @@ rrddump - dump the contents of an RRD to XML format =head1 SYNOPSIS -B B I -S<[B<--header>|B<-h> {xsd,dtd}]> +B B I [I] +S<[B<--header>|B<-h> {none,xsd,dtd}]> +S<[B<--no-header>]> S<[B<--daemon> I
]> S I> -or - -B B I I -S<[B<--header>|B<-h> {xsd,dtd}]> -S<[B<--daemon> I
]> - =head1 DESCRIPTION The B function writes the contents of an B in human @@ -24,7 +19,6 @@ files from one computer architecture to another as well to manipulate the contents of an B file in a somewhat more convenient manner. - =over 8 =item I @@ -36,9 +30,18 @@ The name of the B you want to dump. The (optional) filename that you want to write the XML output to. If not specified, the XML will be printed to stdout. -=item B<--header>|B<-h> {xsd,dtd} +=item B<--header>|B<-h> {none,xsd,dtd} + +By default rrdtool will add a dtd header to the xml file. Here +you can customize this to and xsd header or no header at all. + + +=item B<--no-header> + +A shortcut for S<--header=none>. -Optionally rrdtool can add a xsd or dtd header to the dump output. +If you want to restore the dump with rrdtool 1.2 you should use the +S<--no-header> option since 1.2 can not deal with xml headers. =item B<--daemon> I
diff --git a/src/rrd_dump.c b/src/rrd_dump.c index 9da8fd7..82bc81e 100644 --- a/src/rrd_dump.c +++ b/src/rrd_dump.c @@ -455,7 +455,7 @@ int rrd_dump( * 1 = dtd header * 2 = xsd header */ - int opt_header = 0; + int opt_header = 1; char *opt_daemon = NULL; /* init rrd clean */ @@ -463,16 +463,17 @@ int rrd_dump( optind = 0; opterr = 0; /* initialize getopt */ - while (42) { + while (42) {/* ha ha */ int opt; int option_index = 0; static struct option long_options[] = { {"daemon", required_argument, 0, 'd'}, {"header", required_argument, 0, 'h'}, + {"no-header", no_argument, 0, 'n'}, {0, 0, 0, 0} }; - opt = getopt_long(argc, argv, "d:h:", long_options, &option_index); + opt = getopt_long(argc, argv, "d:h:n", long_options, &option_index); if (opt == EOF) break; @@ -489,16 +490,22 @@ int rrd_dump( } break; + case 'n': + opt_header = 0; + break; + case 'h': if (strcmp(optarg, "dtd") == 0) { opt_header = 1; } else if (strcmp(optarg, "xsd") == 0) { opt_header = 2; + } else if (strcmp(optarg, "none") == 0) { + opt_header = 0; } break; default: - rrd_set_error("usage rrdtool %s [--header|-h {xsd,dtd}] " + rrd_set_error("usage rrdtool %s [--header|-h {none,xsd,dtd}] [--no-header]" "file.rrd [file.xml]", argv[0]); return (-1); break; @@ -506,7 +513,7 @@ int rrd_dump( } /* while (42) */ if ((argc - optind) < 1 || (argc - optind) > 2) { - rrd_set_error("usage rrdtool %s [--header|-h {xsd,dtd}] " + rrd_set_error("usage rrdtool %s [--header|-h {none,xsd,dtd}] [--no-header]" "file.rrd [file.xml]", argv[0]); return (-1); } -- 2.30.2