X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=init.c;h=da1f472db35111b806539fe38359aa19103bd2ed;hp=1840c8f82e530283e97ccbd8a6c6a36819194063;hb=62cb17de316e5aa755228fef8ce19b5f5353a3cf;hpb=6eaf09d6e9ca1f8accb057cdb18620b7e53ae33f diff --git a/init.c b/init.c index 1840c8f8..da1f472d 100644 --- 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) { @@ -1440,7 +1456,8 @@ int parse_cmd_line(int argc, char *argv[]) break; case 'V': terse_version = atoi(optarg); - if (!(terse_version == 2 || terse_version == 3)) { + if (!(terse_version == 2 || terse_version == 3) || + (terse_version == 4)) { log_err("fio: bad terse version format\n"); exit_val = 1; do_exit++; @@ -1676,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;