cli function splits

This commit is contained in:
John Kerl 2016-08-17 18:22:32 -04:00
parent 6746625745
commit 2012deae53

View file

@ -810,6 +810,84 @@ static int handle_reader_options(char** argv, int argc, int *pargi, cli_reader_o
int argi = *pargi;
int oargi = argi;
if (streq(argv[argi], "--irs")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->irs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ifs")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->ifs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--repifs")) {
preader_opts->allow_repeat_ifs = TRUE;
argi += 1;
} else if (streq(argv[argi], "--implicit-csv-header")) {
preader_opts->use_implicit_csv_header = TRUE;
argi += 1;
} else if (streq(argv[argi], "--ips")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->ips = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--icsv")) {
preader_opts->ifile_fmt = "csv";
argi += 1;
} else if (streq(argv[argi], "--icsvlite")) {
preader_opts->ifile_fmt = "csvlite";
argi += 1;
} else if (streq(argv[argi], "--itsv")) {
preader_opts->ifile_fmt = "csv";
preader_opts->ifs = "\t";
argi += 1;
} else if (streq(argv[argi], "--itsvlite")) {
preader_opts->ifile_fmt = "csvlite";
preader_opts->ifs = "\t";
argi += 1;
} else if (streq(argv[argi], "--idkvp")) {
preader_opts->ifile_fmt = "dkvp";
argi += 1;
} else if (streq(argv[argi], "--ijson")) {
preader_opts->ifile_fmt = "json";
argi += 1;
} else if (streq(argv[argi], "--inidx")) {
preader_opts->ifile_fmt = "nidx";
argi += 1;
} else if (streq(argv[argi], "--ixtab")) {
preader_opts->ifile_fmt = "xtab";
argi += 1;
} else if (streq(argv[argi], "--ipprint")) {
preader_opts->ifile_fmt = "csvlite";
preader_opts->ifs = " ";
preader_opts->allow_repeat_ifs = TRUE;
argi += 1;
} else if (streq(argv[argi], "--mmap")) {
preader_opts->use_mmap_for_read = TRUE;
argi += 1;
} else if (streq(argv[argi], "--no-mmap")) {
preader_opts->use_mmap_for_read = FALSE;
argi += 1;
} else if (streq(argv[argi], "--prepipe")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->prepipe = argv[argi+1];
preader_opts->use_mmap_for_read = FALSE;
argi += 2;
}
*pargi = argi;
return argi != oargi;
}
@ -820,6 +898,113 @@ static int handle_writer_options(char** argv, int argc, int *pargi, cli_writer_o
int argi = *pargi;
int oargi = argi;
if (streq(argv[argi], "--ors")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ors = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ofs")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ofs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--headerless-csv-output")) {
pwriter_opts->headerless_csv_output = TRUE;
argi += 1;
} else if (streq(argv[argi], "--ops")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ops = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--xvright")) {
pwriter_opts->right_justify_xtab_value = TRUE;
argi += 1;
} else if (streq(argv[argi], "--jvstack")) {
pwriter_opts->stack_json_output_vertically = TRUE;
argi += 1;
} else if (streq(argv[argi], "--jlistwrap")) {
pwriter_opts->wrap_json_output_in_outer_list = TRUE;
argi += 1;
} else if (streq(argv[argi], "--jquoteall")) {
pwriter_opts->quote_json_values_always = TRUE;
argi += 1;
} else if (streq(argv[argi], "--vflatsep")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->oosvar_flatten_separator = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ocsv")) {
pwriter_opts->ofile_fmt = "csv";
argi += 1;
} else if (streq(argv[argi], "--ocsvlite")) {
pwriter_opts->ofile_fmt = "csvlite";
argi += 1;
} else if (streq(argv[argi], "--otsv")) {
pwriter_opts->ofile_fmt = "csv";
pwriter_opts->ofs = "\t";
argi += 1;
} else if (streq(argv[argi], "--otsvlite")) {
pwriter_opts->ofile_fmt = "csvlite";
pwriter_opts->ofs = "\t";
argi += 1;
} else if (streq(argv[argi], "--omd")) {
pwriter_opts->ofile_fmt = "markdown";
argi += 1;
} else if (streq(argv[argi], "--odkvp")) {
pwriter_opts->ofile_fmt = "dkvp";
argi += 1;
} else if (streq(argv[argi], "--ojson")) {
pwriter_opts->ofile_fmt = "json";
argi += 1;
} else if (streq(argv[argi], "--onidx")) {
pwriter_opts->ofile_fmt = "nidx";
argi += 1;
} else if (streq(argv[argi], "--oxtab")) {
pwriter_opts->ofile_fmt = "xtab";
argi += 1;
} else if (streq(argv[argi], "--opprint")) {
pwriter_opts->ofile_fmt = "pprint";
argi += 1;
} else if (streq(argv[argi], "--right")) {
pwriter_opts->left_align_pprint = FALSE;
argi += 1;
} else if (streq(argv[argi], "--quote-all")) {
pwriter_opts->oquoting = QUOTE_ALL;
argi += 1;
} else if (streq(argv[argi], "--quote-none")) {
pwriter_opts->oquoting = QUOTE_NONE;
argi += 1;
} else if (streq(argv[argi], "--quote-minimal")) {
pwriter_opts->oquoting = QUOTE_MINIMAL;
argi += 1;
} else if (streq(argv[argi], "--quote-numeric")) {
pwriter_opts->oquoting = QUOTE_NUMERIC;
argi += 1;
} else if (streq(argv[argi], "--quote-original")) {
pwriter_opts->oquoting = QUOTE_ORIGINAL;
argi += 1;
}
*pargi = argi;
return argi != oargi;
}
@ -833,40 +1018,15 @@ static int handle_reader_writer_options(char** argv, int argc, int *pargi,
if (streq(argv[argi], "--rs")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ors = cli_sep_from_arg(argv[argi+1]);
preader_opts->irs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--irs")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->irs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ors")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ors = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--fs")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ofs = cli_sep_from_arg(argv[argi+1]);
preader_opts->ifs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ifs")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->ifs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ofs")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ofs = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--repifs")) {
preader_opts->allow_repeat_ifs = TRUE;
argi += 1;
} else if (streq(argv[argi], "--implicit-csv-header")) {
preader_opts->use_implicit_csv_header = TRUE;
argi += 1;
} else if (streq(argv[argi], "--headerless-csv-output")) {
pwriter_opts->headerless_csv_output = TRUE;
argi += 1;
} else if (streq(argv[argi], "-p")) {
preader_opts->ifile_fmt = "nidx";
@ -878,189 +1038,66 @@ static int handle_reader_writer_options(char** argv, int argc, int *pargi,
} else if (streq(argv[argi], "--ps")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ops = cli_sep_from_arg(argv[argi+1]);
preader_opts->ips = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ips")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->ips = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--ops")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->ops = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--xvright")) {
pwriter_opts->right_justify_xtab_value = TRUE;
argi += 1;
} else if (streq(argv[argi], "--jvstack")) {
pwriter_opts->stack_json_output_vertically = TRUE;
argi += 1;
} else if (streq(argv[argi], "--jlistwrap")) {
pwriter_opts->wrap_json_output_in_outer_list = TRUE;
argi += 1;
} else if (streq(argv[argi], "--jquoteall")) {
pwriter_opts->quote_json_values_always = TRUE;
argi += 1;
} else if (streq(argv[argi], "--jflatsep")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->input_json_flatten_separator = cli_sep_from_arg(argv[argi+1]);
pwriter_opts->output_json_flatten_separator = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--vflatsep")) {
check_arg_count(argv, argi, argc, 2);
pwriter_opts->oosvar_flatten_separator = cli_sep_from_arg(argv[argi+1]);
argi += 2;
} else if (streq(argv[argi], "--csv")) {
preader_opts->ifile_fmt = "csv";
pwriter_opts->ofile_fmt = "csv";
argi += 1;
} else if (streq(argv[argi], "--icsv")) {
preader_opts->ifile_fmt = "csv";
argi += 1;
} else if (streq(argv[argi], "--ocsv")) {
pwriter_opts->ofile_fmt = "csv";
argi += 1;
} else if (streq(argv[argi], "--csvlite")) {
preader_opts->ifile_fmt = "csvlite";
pwriter_opts->ofile_fmt = "csvlite";
argi += 1;
} else if (streq(argv[argi], "--icsvlite")) {
preader_opts->ifile_fmt = "csvlite";
argi += 1;
} else if (streq(argv[argi], "--ocsvlite")) {
pwriter_opts->ofile_fmt = "csvlite";
argi += 1;
} else if (streq(argv[argi], "--tsv")) {
preader_opts->ifile_fmt = pwriter_opts->ofile_fmt = "csv";
preader_opts->ifs = "\t";
pwriter_opts->ofs = "\t";
argi += 1;
} else if (streq(argv[argi], "--itsv")) {
preader_opts->ifile_fmt = "csv";
preader_opts->ifs = "\t";
argi += 1;
} else if (streq(argv[argi], "--otsv")) {
pwriter_opts->ofile_fmt = "csv";
pwriter_opts->ofs = "\t";
argi += 1;
} else if (streq(argv[argi], "--tsvlite")) {
preader_opts->ifile_fmt = pwriter_opts->ofile_fmt = "csvlite";
preader_opts->ifs = "\t";
pwriter_opts->ofs = "\t";
argi += 1;
} else if (streq(argv[argi], "--itsvlite")) {
preader_opts->ifile_fmt = "csvlite";
preader_opts->ifs = "\t";
argi += 1;
} else if (streq(argv[argi], "--otsvlite")) {
pwriter_opts->ofile_fmt = "csvlite";
pwriter_opts->ofs = "\t";
argi += 1;
} else if (streq(argv[argi], "--omd")) {
pwriter_opts->ofile_fmt = "markdown";
argi += 1;
} else if (streq(argv[argi], "--dkvp")) {
preader_opts->ifile_fmt = "dkvp";
pwriter_opts->ofile_fmt = "dkvp";
argi += 1;
} else if (streq(argv[argi], "--idkvp")) {
preader_opts->ifile_fmt = "dkvp";
argi += 1;
} else if (streq(argv[argi], "--odkvp")) {
pwriter_opts->ofile_fmt = "dkvp";
argi += 1;
} else if (streq(argv[argi], "--json")) {
preader_opts->ifile_fmt = "json";
pwriter_opts->ofile_fmt = "json";
argi += 1;
} else if (streq(argv[argi], "--ijson")) {
preader_opts->ifile_fmt = "json";
argi += 1;
} else if (streq(argv[argi], "--ojson")) {
pwriter_opts->ofile_fmt = "json";
argi += 1;
} else if (streq(argv[argi], "--nidx")) {
preader_opts->ifile_fmt = "nidx";
pwriter_opts->ofile_fmt = "nidx";
argi += 1;
} else if (streq(argv[argi], "--inidx")) {
preader_opts->ifile_fmt = "nidx";
argi += 1;
} else if (streq(argv[argi], "--onidx")) {
pwriter_opts->ofile_fmt = "nidx";
argi += 1;
} else if (streq(argv[argi], "--xtab")) {
preader_opts->ifile_fmt = "xtab";
pwriter_opts->ofile_fmt = "xtab";
argi += 1;
} else if (streq(argv[argi], "--ixtab")) {
preader_opts->ifile_fmt = "xtab";
argi += 1;
} else if (streq(argv[argi], "--oxtab")) {
pwriter_opts->ofile_fmt = "xtab";
argi += 1;
} else if (streq(argv[argi], "--ipprint")) {
preader_opts->ifile_fmt = "csvlite";
preader_opts->ifs = " ";
preader_opts->allow_repeat_ifs = TRUE;
argi += 1;
} else if (streq(argv[argi], "--opprint")) {
pwriter_opts->ofile_fmt = "pprint";
argi += 1;
} else if (streq(argv[argi], "--pprint")) {
preader_opts->ifile_fmt = "csvlite";
preader_opts->ifs = " ";
preader_opts->allow_repeat_ifs = TRUE;
pwriter_opts->ofile_fmt = "pprint";
argi += 1;
} else if (streq(argv[argi], "--right")) {
pwriter_opts->left_align_pprint = FALSE;
argi += 1;
} else if (streq(argv[argi], "--mmap")) {
preader_opts->use_mmap_for_read = TRUE;
argi += 1;
} else if (streq(argv[argi], "--no-mmap")) {
preader_opts->use_mmap_for_read = FALSE;
argi += 1;
} else if (streq(argv[argi], "--prepipe")) {
check_arg_count(argv, argi, argc, 2);
preader_opts->prepipe = argv[argi+1];
preader_opts->use_mmap_for_read = FALSE;
argi += 2;
} else if (streq(argv[argi], "--quote-all")) {
pwriter_opts->oquoting = QUOTE_ALL;
argi += 1;
} else if (streq(argv[argi], "--quote-none")) {
pwriter_opts->oquoting = QUOTE_NONE;
argi += 1;
} else if (streq(argv[argi], "--quote-minimal")) {
pwriter_opts->oquoting = QUOTE_MINIMAL;
argi += 1;
} else if (streq(argv[argi], "--quote-numeric")) {
pwriter_opts->oquoting = QUOTE_NUMERIC;
argi += 1;
} else if (streq(argv[argi], "--quote-original")) {
pwriter_opts->oquoting = QUOTE_ORIGINAL;
argi += 1;
}
*pargi = argi;
return argi != oargi;
}