Add a simple json encoder and use it to print fio output in json format
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/init.c b/init.c
index 54ee1db..ca8047b 100644
--- a/init.c
+++ b/init.c
@@ -117,6 +117,11 @@
.val = 'm' | FIO_CLIENT_FLAG,
},
{
+ .name = (char *) "json-output",
+ .has_arg = optional_argument,
+ .val = 'J' | FIO_CLIENT_FLAG,
+ },
+ {
.name = (char *) "version",
.has_arg = no_argument,
.val = 'v' | FIO_CLIENT_FLAG,
@@ -1408,6 +1413,10 @@
case 'm':
terse_output = 1;
break;
+ case 'J':
+ terse_version = 4;
+ terse_output = 1;
+ break;
case 'h':
if (!cur_client) {
usage(argv[0]);
@@ -1439,9 +1448,10 @@
}
break;
case 'V':
+ if (terse_version == 4)
+ break;
terse_version = atoi(optarg);
- if (!(terse_version == 2 || terse_version == 3) ||
- (terse_version == 4)) {
+ if (!(terse_version == 2 || terse_version == 3)) {
log_err("fio: bad terse version format\n");
exit_val = 1;
do_exit++;