X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_flush.c;h=1f72e80067ee050f6534ffffe80fb2502a81efbe;hp=218a65a4f0a8660a60a831b27f3ba629773a2baf;hb=f4abf7d18767b842801a7c38f922e34e0ff3c890;hpb=a12627275ff8487174cbb907a066f62a00b6ae44 diff --git a/src/rrd_flush.c b/src/rrd_flush.c index 218a65a..1f72e80 100644 --- a/src/rrd_flush.c +++ b/src/rrd_flush.c @@ -26,6 +26,7 @@ int rrd_cmd_flush (int argc, char **argv) { char *opt_daemon = NULL; int status; + int i; /* initialize getopt */ optind = 0; @@ -65,9 +66,9 @@ int rrd_cmd_flush (int argc, char **argv) } } /* while (42) */ - if ((argc - optind) != 1) + if ((argc - optind) < 1) { - rrd_set_error ("Usage: rrdtool %s [--daemon ] ", argv[0]); + rrd_set_error ("Usage: rrdtool %s [--daemon ] [ ...]", argv[0]); return (-1); } @@ -85,7 +86,26 @@ int rrd_cmd_flush (int argc, char **argv) return (-1); } - status = rrdc_flush(argv[optind]); + status = 0; + for (int i = optind; i < argc; i++) + { + status = rrdc_flush(argv[i]); + if (status) + { + char *error; + int remaining; + + error = strdup(rrd_get_error()); + remaining = argc - optind - 1; + + rrd_set_error("Flushing of file \"%s\" failed: %s. Skipping " + "remaining %i file%s.", argv[i], + ((! error) || (*error == '\0')) ? "unknown error" : error, + remaining, (remaining == 1) ? "" : "s"); + free(error); + break; + } + } return ((status == 0) ? 0 : -1); } /* int rrd_flush */