json_pipe.c
Go to the documentation of this file.
1 #include "../csm/csm_all.h"
2 #include <options/options.h>
3 
4 int main(int argc, const char * argv[]) {
5  sm_set_program_name(argv[0]);
6 
7  int n;
8 
9  struct option* ops = options_allocate(3);
10  options_int(ops, "n", &n, 1, "Number of copies");
11  if(!options_parse_args(ops, argc, argv)) {
12  sm_info("%s : reads a JSON stream and copies it multiplied by n."
13  "\n\nOptions:\n", (char*)argv[0]);
14  options_print_help(ops, stderr);
15  return -1;
16  }
17 
18 
19  while(1) {
20  JO jo = json_read_stream(stdin);
21  if(!jo) {
22  if(feof(stdin)) break;
23  sm_error("Malformed JSON\n");
24  return -1;
25  }
26 
27  const char * s = json_object_to_json_string(jo);
28  int i; for(i=0;i<n;i++) {
29  puts(s); puts("\n");
30  }
31  jo_free(jo);
32  }
33 
34  return 0;
35 }
options.h
sm_set_program_name
void sm_set_program_name(const char *name)
Definition: logging.c:21
main
int main(int argc, const char *argv[])
Definition: json_pipe.c:4
jo_free
#define jo_free
Definition: json_more_utils.h:16
options_allocate
struct option * options_allocate(int n)
Definition: options_interface.c:16
options_int
void options_int(struct option *, const char *name, int *p, int def_value, const char *desc)
Definition: options_interface.c:39
json_read_stream
JO json_read_stream(FILE *f)
Definition: json_more_utils.c:48
ops
struct option * ops
Definition: rb_sm.c:31
sm_info
void sm_info(const char *msg,...)
Definition: logging.c:71
option
Definition: options.h:49
options_print_help
void options_print_help(struct option *options, FILE *f)
Definition: options.c:398
sm_error
void sm_error(const char *msg,...)
Definition: logging.c:49
json_object
Definition: json_object_private.h:21
options_parse_args
int options_parse_args(struct option *ops, int argc, const char *argv[])
Definition: options.c:66
json_object_to_json_string
const char * json_object_to_json_string(struct json_object *this)
Definition: json_object.c:199


csm
Author(s): Andrea Censi
autogenerated on Wed Aug 17 2022 02:50:33