projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
csv plugin: Make it possible to write values to STDOUT.
[collectd.git]
/
src
/
csv.c
diff --git
a/src/csv.c
b/src/csv.c
index
a94b700
..
b5333b4
100644
(file)
--- a/
src/csv.c
+++ b/
src/csv.c
@@
-36,6
+36,7
@@
static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
static char *datadir = NULL;
static int store_rates = 0;
static char *datadir = NULL;
static int store_rates = 0;
+static int use_stdio = 0;
static int value_list_to_string (char *buffer, int buffer_len,
const data_set_t *ds, const value_list_t *vl)
static int value_list_to_string (char *buffer, int buffer_len,
const data_set_t *ds, const value_list_t *vl)
@@
-146,6
+147,7
@@
static int value_list_to_filename (char *buffer, int buffer_len,
return (-1);
offset += status;
return (-1);
offset += status;
+ if (!use_stdio)
{
time_t now;
struct tm stm;
{
time_t now;
struct tm stm;
@@
-200,6
+202,16
@@
static int csv_config (const char *key, const char *value)
{
if (datadir != NULL)
free (datadir);
{
if (datadir != NULL)
free (datadir);
+ if (strcasecmp ("stdout", value) == 0)
+ {
+ use_stdio = 1;
+ return (0);
+ }
+ else if (strcasecmp ("stderr", value) == 0)
+ {
+ use_stdio = 2;
+ return (0);
+ }
datadir = strdup (value);
if (datadir != NULL)
{
datadir = strdup (value);
if (datadir != NULL)
{
@@
-259,6
+271,13
@@
static int csv_write (const data_set_t *ds, const value_list_t *vl)
if (value_list_to_string (values, sizeof (values), ds, vl) != 0)
return (-1);
if (value_list_to_string (values, sizeof (values), ds, vl) != 0)
return (-1);
+ if (use_stdio)
+ {
+ fprintf (use_stdio == 1 ? stdout : stderr,
+ "%s=%s\n", filename, values);
+ return (0);
+ }
+
if (stat (filename, &statbuf) == -1)
{
if (errno == ENOENT)
if (stat (filename, &statbuf) == -1)
{
if (errno == ENOENT)