Makefile: break long line
[fio.git] / init.c
diff --git a/init.c b/init.c
index 54ee1db6ebb43ae1a777eb5ecce5d5c05a9fc8ce..da1f472db35111b806539fe38359aa19103bd2ed 100644 (file)
--- a/init.c
+++ b/init.c
@@ -36,7 +36,7 @@ static struct thread_data def_thread;
 struct thread_data *threads = NULL;
 
 int exitall_on_terminate = 0;
-int terse_output = 0;
+int output_format = FIO_OUTPUT_NORMAL;
 int eta_print;
 unsigned long long mlock_size = 0;
 FILE *f_out = NULL;
@@ -116,6 +116,11 @@ static struct option l_opts[FIO_NR_OPTIONS] = {
                .has_arg        = optional_argument,
                .val            = 'm' | FIO_CLIENT_FLAG,
        },
+       {
+               .name           = (char *) "output-format",
+               .has_arg        = optional_argument,
+               .val            = 'F' | FIO_CLIENT_FLAG,
+       },
        {
                .name           = (char *) "version",
                .has_arg        = no_argument,
@@ -870,7 +875,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num)
        if (!td->o.name)
                td->o.name = strdup(jobname);
 
-       if (!terse_output) {
+       if (output_format == FIO_OUTPUT_NORMAL) {
                if (!job_add_num) {
                        if (!strcmp(td->io_ops->name, "cpuio")) {
                                log_info("%s: ioengine=cpu, cpuload=%u,"
@@ -1213,8 +1218,9 @@ static void usage(const char *name)
        printf("  --latency-log\t\tGenerate per-job latency logs\n");
        printf("  --bandwidth-log\tGenerate per-job bandwidth logs\n");
        printf("  --minimal\t\tMinimal (terse) output\n");
-       printf("  --version\t\tPrint version info and exit\n");
+       printf("  --output-format=x\tOutput format (terse,json,normal)\n");
        printf("  --terse-version=x\tSet terse version output format to 'x'\n");
+       printf("  --version\t\tPrint version info and exit\n");
        printf("  --help\t\tPrint this page\n");
        printf("  --cmdhelp=cmd\t\tPrint command help, \"all\" for all of"
                " them\n");
@@ -1406,7 +1412,17 @@ int parse_cmd_line(int argc, char *argv[])
                        f_err = f_out;
                        break;
                case 'm':
-                       terse_output = 1;
+                       output_format = FIO_OUTPUT_TERSE;
+                       break;
+               case 'F':
+                       if (!strcmp(optarg, "minimal") ||
+                           !strcmp(optarg, "terse") ||
+                           !strcmp(optarg, "csv"))
+                               output_format = FIO_OUTPUT_TERSE;
+                       else if (!strcmp(optarg, "json"))
+                               output_format = FIO_OUTPUT_JSON;
+                       else
+                               output_format = FIO_OUTPUT_NORMAL;
                        break;
                case 'h':
                        if (!cur_client) {
@@ -1677,7 +1693,7 @@ int parse_options(int argc, char *argv[])
                fio_gtod_cpu = def_thread.o.gtod_cpu;
        }
 
-       if (!terse_output)
+       if (output_format == FIO_OUTPUT_NORMAL)
                log_info("%s\n", fio_version_string);
 
        return 0;