if (r < 0)
return r;
- // Draw the maximum line
- r = collecty_args_push(args,
- DRAW_WITH_LABEL("LINE1", "max", LIMIT, DASHES SKIPSCALE), _("Limit"));
- if (r < 0)
- return r;
-
- // Show the current limit
- r = collecty_args_push(args, PRINT_LARGE_INTEGER("max_cur"));
- if (r < 0)
- return r;
-
- // Add an empty column
- r = collecty_args_push(args, PRINT_NOTHING);
- if (r < 0)
- return r;
-
- // Add an empty column
- r = collecty_args_push(args, PRINT_NOTHING);
- if (r < 0)
- return r;
-
- // Add an empty column
- r = collecty_args_push(args, PRINT_NOTHING EOL);
- if (r < 0)
- return r;
-
- // Draw the main area
- r = collecty_args_push(args, DRAW_WITH_LABEL("AREA", "count", GREEN), _("Entries"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_LARGE_INTEGER("count_cur"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_LARGE_INTEGER("count_avg"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_LARGE_INTEGER("count_min"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_LARGE_INTEGER("count_max") EOL);
- if (r < 0)
- return r;
-
- // Add an empty line
- r = collecty_args_push(args, EMPTY_COLUMN);
- if (r < 0)
- return r;
-
- // Add the headline for the "Current" column
- r = collecty_args_push(args, HEADER, _("Current"));
- if (r < 0)
- return r;
-
- // Add the headline for the "Average" column
- r = collecty_args_push(args, HEADER, _("Average"));
- if (r < 0)
- return r;
-
- // Add the headline for the "Minimum" column
- r = collecty_args_push(args, HEADER, _("Minimum"));
- if (r < 0)
- return r;
-
- // Add the headline for the "Maximum" column
- r = collecty_args_push(args, HEADER EOL, _("Maximum"));
- if (r < 0)
- return r;
+ // Limit
+ DRAW_WITH_LABEL(args, "LINE1", "max", LIMIT, _("Limit"), DASHES SKIPSCALE);
+ PRINT_LARGE_INTEGER(args, "max_cur");
+ PRINT_NOTHING(args);
+ PRINT_NOTHING(args);
+ PRINT_NOTHING(args, EOL);
+
+ // Entries
+ DRAW_WITH_LABEL(args, "AREA", "count", GREEN, _("Entries"));
+ PRINT_LARGE_INTEGER(args, "count_cur");
+ PRINT_LARGE_INTEGER(args, "count_avg");
+ PRINT_LARGE_INTEGER(args, "count_min");
+ PRINT_LARGE_INTEGER(args, "count_max", EOL);
+
+ // Header
+ PRINT_EMPTY_LABEL(args);
+ PRINT_HEADER(args, _("Current"));
+ PRINT_HEADER(args, _("Average"));
+ PRINT_HEADER(args, _("Minimum"));
+ PRINT_HEADER(args, _("Maximum"), EOL);
return 0;
}
// Include utils
#include "../util.h"
-#define HEADER "COMMENT:" COLUMN
-#define EMPTY_COLUMN "COMMENT: "
+#define SCRIPT(args, def) \
+ do { \
+ int __r = collecty_args_push(args, def); \
+ if (__r < 0) \
+ return __r; \
+ } while(0)
+
+#define SCRIPT_WITH_LABEL(args, def, label) \
+ do { \
+ int __r = collecty_args_push(args, def, label); \
+ if (__r < 0) \
+ return __r; \
+ } while (0)
+
#define EMPTY_LINE "COMMENT: \\n"
// Labels are 30 characters wide
#define EOL "\\j"
// Draw a LINE, AREA, etc.
-#define DRAW(what, field, color, ...) \
- what ":" field color __VA_ARGS__
+#define DRAW(args, what, field, color, ...) \
+ SCRIPT(args, what ":" field color __VA_ARGS__)
-#define DRAW_WITH_LABEL(what, field, color, ...) \
- DRAW(what, field, color) ":" LABEL __VA_ARGS__
+#define DRAW_WITH_LABEL(args, what, field, color, label, ...) \
+ SCRIPT_WITH_LABEL(args, what ":" field color ":" LABEL __VA_ARGS__, label)
// Modifiers for lines
#define DASHES ":dashes"
#define SKIPSCALE ":skipscale"
// Add something to the legend of the graph
-#define PRINT(field, ...) "GPRINT:" field ":" __VA_ARGS__
-#define PRINT_NOTHING "COMMENT: "
-#define PRINT_INTEGER(field) PRINT(field, INTEGER)
-#define PRINT_LARGE_INTEGER(field) PRINT(field, LARGE_INTEGER)
-#define PRINT_FLOAT(field) PRINT(field, FLOAT)
-#define PRINT_LARGE_FLOAT(field) PRINT(field, LARGE_FLOAT)
+#define PRINT(args, field, ...) SCRIPT(args, "GPRINT:" field ":" __VA_ARGS__)
+#define PRINT_HEADER(args, label, ...) SCRIPT_WITH_LABEL(args, "COMMENT:" COLUMN __VA_ARGS__, label)
+#define PRINT_EMPTY_LABEL(args, ...) SCRIPT(args, "COMMENT: " __VA_ARGS__)
+#define PRINT_NOTHING(args, ...) SCRIPT(args, "COMMENT: " __VA_ARGS__)
+#define PRINT_INTEGER(args, field, ...) PRINT(args, field, INTEGER __VA_ARGS__)
+#define PRINT_LARGE_INTEGER(args, field, ...) PRINT(args, field, LARGE_INTEGER __VA_ARGS__)
+#define PRINT_FLOAT(args, field, ...) PRINT(args, field, FLOAT __VA_ARGS__)
+#define PRINT_LARGE_FLOAT(args, field, ...) PRINT(args, field, LARGE_FLOAT __VA_ARGS__)
#endif /* COLLECTY_GRAPHS_GRAPH_H */
return r;
// Add 15-minute load average
- r = collecty_args_push(args,
- DRAW("AREA", "load15", COLOR_WITH_ALPHA(COLOR_LOAD15, OPACITY_25P)));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args,
- DRAW_WITH_LABEL("LINE1", "load15", COLOR_LOAD15), _("15 Minutes"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load15_cur"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load15_avg"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load15_min"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load15_max") EOL);
- if (r < 0)
- return r;
+ DRAW(args, "AREA", "load15", COLOR_WITH_ALPHA(COLOR_LOAD15, OPACITY_25P));
+ DRAW_WITH_LABEL(args, "LINE1", "load15", COLOR_LOAD15, _("15 Minutes"));
+ PRINT_FLOAT(args, "load15_cur");
+ PRINT_FLOAT(args, "load15_avg");
+ PRINT_FLOAT(args, "load15_min");
+ PRINT_FLOAT(args, "load15_max", EOL);
// Add 5-minute load average
- r = collecty_args_push(args,
- DRAW("AREA", "load5", COLOR_WITH_ALPHA(COLOR_LOAD5, OPACITY_25P)));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args,
- DRAW_WITH_LABEL("LINE1", "load5", COLOR_LOAD5), _("5 Minutes"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load5_cur"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load5_avg"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load5_min"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load5_max") EOL);
- if (r < 0)
- return r;
+ DRAW(args, "AREA", "load15", COLOR_WITH_ALPHA(COLOR_LOAD5, OPACITY_25P));
+ DRAW_WITH_LABEL(args, "LINE1", "load5", COLOR_LOAD5, _("5 Minutes"));
+ PRINT_FLOAT(args, "load5_cur");
+ PRINT_FLOAT(args, "load5_avg");
+ PRINT_FLOAT(args, "load5_min");
+ PRINT_FLOAT(args, "load5_max", EOL);
// Add 1-minute load average
- r = collecty_args_push(args,
- DRAW("AREA", "load1", COLOR_WITH_ALPHA(COLOR_LOAD1, OPACITY_25P)));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args,
- DRAW_WITH_LABEL("LINE1", "load1", COLOR_LOAD1), _("1 Minute"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load1_cur"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load1_avg"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load1_min"));
- if (r < 0)
- return r;
-
- r = collecty_args_push(args, PRINT_FLOAT("load1_max") EOL);
- if (r < 0)
- return r;
-
- // Add an empty line
- r = collecty_args_push(args, EMPTY_COLUMN);
- if (r < 0)
- return r;
-
- // Add the headline for the "Current" column
- r = collecty_args_push(args, HEADER, _("Current"));
- if (r < 0)
- return r;
-
- // Add the headline for the "Average" column
- r = collecty_args_push(args, HEADER, _("Average"));
- if (r < 0)
- return r;
-
- // Add the headline for the "Minimum" column
- r = collecty_args_push(args, HEADER, _("Minimum"));
- if (r < 0)
- return r;
-
- // Add the headline for the "Maximum" column
- r = collecty_args_push(args, HEADER EOL, _("Maximum"));
- if (r < 0)
- return r;
+ DRAW(args, "AREA", "load1", COLOR_WITH_ALPHA(COLOR_LOAD1, OPACITY_25P));
+ DRAW_WITH_LABEL(args, "LINE1", "load1", COLOR_LOAD1, _("1 Minute"));
+ PRINT_FLOAT(args, "load1_cur");
+ PRINT_FLOAT(args, "load1_avg");
+ PRINT_FLOAT(args, "load1_min");
+ PRINT_FLOAT(args, "load1_max", EOL);
+
+ // Header
+ PRINT_EMPTY_LABEL(args);
+ PRINT_HEADER(args, _("Current"));
+ PRINT_HEADER(args, _("Average"));
+ PRINT_HEADER(args, _("Minimum"));
+ PRINT_HEADER(args, _("Maximum"), EOL);
return 0;
}