{
config_setting_t *list, *str_list;
const char *name, *parser = NULL, *filename, **parser_data;
+ const char **pre_draw_cmd;
if (!config_setting_lookup_string(rrd, "name", &name)) {
pr_err("Database entry does not contain name\n");
db->parser_data = parser_data;
}
+ str_list = config_setting_get_member(rrd, "pre_draw_cmd");
+ if (str_list) {
+ read_strings_from_list(str_list, &pre_draw_cmd);
+ db->pre_draw_cmd = (char *const *)pre_draw_cmd;
+ }
+
return 0;
}
harvest_zombies(pid);
}
+ if (rrd->pre_draw_cmd && !strcmp(rrd->pre_draw_cmd[0], "shell")) {
+ pid = run(rrd->pre_draw_cmd[1], &rrd->pre_draw_cmd[1]);
+ harvest_zombies(pid);
+ }
+
if (rrd->images)
rrdtool_draw_images(rrd->images);
int (*parse)(char *rrd_data, const char **parser_data);
const char **parser_data; /* data to be fed to the parser */
+ char *const *pre_draw_cmd; /* Command to execute prior drawing images*/
+
struct rrd_image **images; /* Images to draw */
struct rrd_data_source *sources; /* These are currently only used */