X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_tool.c;h=f536fa517926a15d60791b888fad285a08ab342f;hb=d38f649c3e9f0dbfbd80a86eb94ef7970e4a376c;hp=b5d856d3fca154c6a4ad6504abb983206e0e1019;hpb=dd4f4fc446478424a4462a5fb55ca176891bb9c2;p=rrdtool.git diff --git a/src/rrd_tool.c b/src/rrd_tool.c index b5d856d..f536fa5 100644 --- a/src/rrd_tool.c +++ b/src/rrd_tool.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.2.99907080300 Copyright by Tobi Oetiker, 1997-2007 + * RRDtool 1.3.1 Copyright by Tobi Oetiker, 1997-2008 ***************************************************************************** * rrd_tool.c Startup wrapper *****************************************************************************/ @@ -47,14 +47,15 @@ void PrintUsage( const char *help_main = N_("RRDtool %s" - " Copyright 1997-2007 by Tobias Oetiker \n" + " Copyright 1997-2008 by Tobias Oetiker \n" " Compiled %s %s\n\n" "Usage: rrdtool [options] command command_options\n\n"); const char *help_list = - N_("Valid commands: create, update, updatev, graph, dump, restore,\n" - "\t\tlast, lastupdate, first, info, fetch, tune,\n" - "\t\tresize, xport\n\n"); + N_ + ("Valid commands: create, update, updatev, graph, graphv, dump, restore,\n" + "\t\tlast, lastupdate, first, info, fetch, tune,\n" + "\t\tresize, xport\n\n"); const char *help_listremote = N_("Valid remote commands: quit, ls, cd, mkdir, pwd\n\n"); @@ -116,10 +117,15 @@ void PrintUsage( /* break up very large strings (help_graph, help_tune) for ISO C89 compliance*/ - const char *help_graph1 = + const char *help_graph0 = N_("* graph - generate a graph from one or several RRD\n\n" - "\trrdtool graph filename [-s|--start seconds] [-e|--end seconds]\n" - "\t\t[-x|--x-grid x-axis grid and label]\n" + "\trrdtool graph filename [-s|--start seconds] [-e|--end seconds]\n"); + const char *help_graphv0 = + N_("* graphv - generate a graph from one or several RRD\n" + " with meta data printed before the graph\n\n" + "\trrdtool graphv filename [-s|--start seconds] [-e|--end seconds]\n"); + const char *help_graph1 = + N_("\t\t[-x|--x-grid x-axis grid and label]\n" "\t\t[-Y|--alt-y-grid]\n" "\t\t[-y|--y-grid y-axis grid and label]\n" "\t\t[-v|--vertical-label string] [-w|--width pixels]\n" @@ -135,6 +141,7 @@ void PrintUsage( "\t\t[-M|--alt-autoscale-max]\n" "\t\t[-R|--font-render-mode {normal,light,mono}]\n" "\t\t[-B|--font-smoothing-threshold size]\n" + "\t\t[-T|--tabwidth width]\n" "\t\t[-E|--slope-mode]\n" "\t\t[-N|--no-gridfit]\n" "\t\t[-X|--units-exponent value]\n" @@ -148,8 +155,9 @@ void PrintUsage( const char *help_graph3 = N_("\t\t[CDEF:vname=rpn-expression]\n" "\t\t[VDEF:vdefname=rpn-expression]\n" - "\t\t[PRINT:vdefname:format]\n" "\t\t[GPRINT:vdefname:format]\n" - "\t\t[COMMENT:text]\n" "\t\t[SHIFT:vname:offset]\n" + "\t\t[PRINT:vdefname:format]\n" + "\t\t[GPRINT:vdefname:format]\n" "\t\t[COMMENT:text]\n" + "\t\t[SHIFT:vname:offset]\n" "\t\t[TICK:vname#rrggbb[aa][:[fraction][:legend]]]\n" "\t\t[HRULE:value#rrggbb[aa][:legend]]\n" "\t\t[VRULE:value#rrggbb[aa][:legend]]\n" @@ -158,7 +166,6 @@ void PrintUsage( "\t\t[PRINT:vname:CF:format] (deprecated)\n" "\t\t[GPRINT:vname:CF:format] (deprecated)\n" "\t\t[STACK:vname[#rrggbb[aa][:legend]]] (deprecated)\n\n"); - const char *help_tune1 = N_(" * tune - Modify some basic properties of an RRD\n\n" "\trrdtool tune filename\n" @@ -176,52 +183,42 @@ void PrintUsage( "\t\t[--gamma adaptation-parameter]\n" "\t\t[--gamma-deviation adaptation-parameter]\n" "\t\t[--aberrant-reset ds-name]\n\n"); - const char *help_resize = - N_(" * resize - alter the length of one of the RRAs in an RRD\n\n" - "\trrdtool resize filename rranum GROW|SHRINK rows\n\n"); - + N_ + (" * resize - alter the length of one of the RRAs in an RRD\n\n" + "\trrdtool resize filename rranum GROW|SHRINK rows\n\n"); const char *help_xport = N_("* xport - generate XML dump from one or several RRD\n\n" "\trrdtool xport [-s|--start seconds] [-e|--end seconds]\n" - "\t\t[-m|--maxrows rows]\n" - "\t\t[--step seconds]\n" - "\t\t[--enumds]\n" - "\t\t[DEF:vname=rrd:ds-name:CF]\n" + "\t\t[-m|--maxrows rows]\n" "\t\t[--step seconds]\n" + "\t\t[--enumds]\n" "\t\t[DEF:vname=rrd:ds-name:CF]\n" "\t\t[CDEF:vname=rpn-expression]\n" "\t\t[XPORT:vname:legend]\n\n"); - const char *help_quit = N_(" * quit - closing a session in remote mode\n\n" "\trrdtool quit\n\n"); - const char *help_ls = N_(" * ls - lists all *.rrd files in current directory\n\n" "\trrdtool ls\n\n"); - const char *help_cd = N_(" * cd - changes the current directory\n\n" "\trrdtool cd new directory\n\n"); - const char *help_mkdir = N_(" * mkdir - creates a new directory\n\n" "\trrdtool mkdir newdirectoryname\n\n"); - const char *help_pwd = N_(" * pwd - returns the current working directory\n\n" "\trrdtool pwd\n\n"); - const char *help_lic = N_("RRDtool is distributed under the Terms of the GNU General\n" "Public License Version 2. (www.gnu.org/copyleft/gpl.html)\n\n" "For more information read the RRD manpages\n\n"); - enum { C_NONE, C_CREATE, C_DUMP, C_INFO, C_RESTORE, C_LAST, - C_LASTUPDATE, C_FIRST, C_UPDATE, C_FETCH, C_GRAPH, C_TUNE, + C_LASTUPDATE, C_FIRST, C_UPDATE, C_FETCH, C_GRAPH, C_GRAPHV, + C_TUNE, C_RESIZE, C_XPORT, C_QUIT, C_LS, C_CD, C_MKDIR, C_PWD, C_UPDATEV }; - int help_cmd = C_NONE; if (cmd) { @@ -247,6 +244,8 @@ void PrintUsage( help_cmd = C_FETCH; else if (!strcmp(cmd, "graph")) help_cmd = C_GRAPH; + else if (!strcmp(cmd, "graphv")) + help_cmd = C_GRAPHV; else if (!strcmp(cmd, "tune")) help_cmd = C_TUNE; else if (!strcmp(cmd, "resize")) @@ -304,9 +303,16 @@ void PrintUsage( fputs(_(help_fetch), stdout); break; case C_GRAPH: + fputs(_(help_graph0), stdout); fputs(_(help_graph1), stdout); - fputs(help_graph2, stdout); - fputs(help_graph3, stdout); + fputs(_(help_graph2), stdout); + fputs(_(help_graph3), stdout); + break; + case C_GRAPHV: + fputs(_(help_graphv0), stdout); + fputs(_(help_graph1), stdout); + fputs(_(help_graph2), stdout); + fputs(_(help_graph3), stdout); break; case C_TUNE: fputs(_(help_tune1), stdout); @@ -382,7 +388,8 @@ int main( #ifdef HAVE_LOCALE_H setlocale(LC_ALL, ""); #endif -#ifdef HAVE_LIBINTL_H + +#if defined(HAVE_LIBINTL_H) && defined(BUILD_LIBINTL) bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); @@ -469,7 +476,6 @@ int main( / 1000000.0); #else printf("OK\n"); - #endif } } @@ -507,7 +513,6 @@ int HandleInputLine( /* Reset errno to 0 before we start. */ errno = 0; - if (RemoteMode) { if (argc > 1 && strcmp("quit", argv[1]) == 0) { if (argc > 2) { @@ -616,40 +621,15 @@ int HandleInputLine( else if (strcmp("dump", argv[1]) == 0) rrd_dump(argc - 1, &argv[1]); else if (strcmp("info", argv[1]) == 0 || strcmp("updatev", argv[1]) == 0) { - info_t *data, *save; + rrd_info_t *data; if (strcmp("info", argv[1]) == 0) + data = rrd_info(argc - 1, &argv[1]); else data = rrd_update_v(argc - 1, &argv[1]); - while (data) { - save = data; - printf("%s = ", data->key); - free(data->key); - - switch (data->type) { - case RD_I_VAL: - if (isnan(data->value.u_val)) - printf("NaN"); - else - printf("%0.10e", data->value.u_val); - break; - case RD_I_CNT: - printf("%lu", data->value.u_cnt); - break; - case RD_I_INT: - printf("%d", data->value.u_int); - break; - case RD_I_STR: - printf("\"%s\"", data->value.u_str); - free(data->value.u_str); - break; - } - data = data->next; - free(save); - printf("\n"); - } - free(data); + rrd_info_print(data); + rrd_info_free(data); } else if (strcmp("--version", argv[1]) == 0 || @@ -657,7 +637,7 @@ int HandleInputLine( strcmp("v", argv[1]) == 0 || strcmp("-v", argv[1]) == 0 || strcmp("-version", argv[1]) == 0) printf("RRDtool " PACKAGE_VERSION - " Copyright by Tobi Oetiker, 1997-2005 (%f)\n", + " Copyright by Tobi Oetiker, 1997-2008 (%f)\n", rrd_version()); else if (strcmp("restore", argv[1]) == 0) rrd_restore(argc - 1, &argv[1]); @@ -770,10 +750,10 @@ int HandleInputLine( rrd_value_t newval = DNAN; if (enumds == 1) + snprintf(vtag, vtag_s, "%s%lu", COL_DATA_TAG, j); else snprintf(vtag, vtag_s, "%s", COL_DATA_TAG); - newval = *ptr; if (isnan(newval)) { printf("<%s>NaN", vtag, vtag); @@ -823,6 +803,15 @@ int HandleInputLine( } } + } else if (strcmp("graphv", argv[1]) == 0) { + rrd_info_t *grinfo = NULL; /* 1 to distinguish it from the NULL that rrd_graph sends in */ + + grinfo = rrd_graph_v(argc - 1, &argv[1]); + if (grinfo) { + rrd_info_print(grinfo); + rrd_info_free(grinfo); + } + } else if (strcmp("tune", argv[1]) == 0) rrd_tune(argc - 1, &argv[1]); else { @@ -882,7 +871,6 @@ int CreateArgs( /* sikp leading blanks */ while (*aLine && *aLine <= ' ') aLine++; - pargv[0] = pName; argc = 1; getP = aLine; @@ -925,7 +913,6 @@ int CreateArgs( } *putP = '\0'; - if (Quote) return -1; else