7 #define ARGSTR_LEN 32768
9 #define RRDTOOL_CMD "/usr/bin/rrdtool"
11 #define print(fmt, arg...) \
12 args[argcnt] = argstr + idx; \
13 idx += sprintf(argstr + idx, fmt, ##arg); \
17 int rrdtool_draw_image(struct rrd_image *image)
19 char cmd[] = RRDTOOL_CMD;
20 // char cmd[] = "echo";
21 char *args[512], argstr[ARGSTR_LEN];
22 int idx = 0, argcnt = 0, i,j;
27 strftime(tmp, 256, "%d.%m.%Y %T (%Z) ", localtime(&t));
28 for (i = 0, j = 0; j < 256;) {
30 timestamp[j++] = '\\';
32 timestamp[j++] = tmp[i++];
41 print("%s", image->image_filename);
44 print("%s", image->timestart);
46 print("%s", image->timeend);
48 print("%d", image->width);
50 print("%d", image->height);
52 print("%s", image->imageformat);
54 for (i = 0; image->options[i]; i++) {
55 print("%s", image->options[i]);
58 for (i = 0; image->text[i]; i++) {
59 args[argcnt++] = image->text[i];
62 print("COMMENT:Last update %s\\c", timestamp);
71 int rrdtool_draw_images(struct rrd_image **image)
74 for (i = 0; image[i]; i++)
75 rrdtool_draw_image(image[i]);
80 int rrdtool_update_data(struct rrd_database *rrd)
83 char cmd[] = RRDTOOL_CMD;
84 // char cmd[] = "echo";
94 rrd->last_update = time(0);
98 l = sprintf(data, "N:");
101 rrd->parse(data + l);
106 rrdtool_draw_images(rrd->images);
108 while (harvest_zombies(0));