diff options
author | David Fetter <david@fetter.org> | 2017-10-27 18:46:57 -0400 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2017-12-11 12:17:17 -0600 |
commit | b4742c125704817862968b2fd8796256e8d82e5f (patch) | |
tree | a942e1f2065c9f0daaad5286a3daa99234fedb76 | |
parent | 9a4576e7567dd38b91f28592b47eb6dafe0c4332 (diff) |
Added rawfile
In passing, clean remnants of argfile from slurpfile docs.
-rw-r--r-- | docs/content/3.manual/manual.yml | 9 | ||||
-rw-r--r-- | src/main.c | 7 |
2 files changed, 14 insertions, 2 deletions
diff --git a/docs/content/3.manual/manual.yml b/docs/content/3.manual/manual.yml index 91209a1e..34ef085f 100644 --- a/docs/content/3.manual/manual.yml +++ b/docs/content/3.manual/manual.yml @@ -236,10 +236,17 @@ sections: This option reads all the JSON texts in the named file and binds an array of the parsed JSON values to the given global variable. - If you run jq with `--argfile foo bar`, then `$foo` is available + If you run jq with `--slurpfile foo bar`, then `$foo` is available in the program and has an array whose elements correspond to the texts in the file named `bar`. + * `--rawfile variable-name filename`: + + This option reads in the named file and binds its contents to the given + global variable. If you run jq with `--rawfile foo bar`, then `$foo` is + available in the program and has a string whose contents are to the texs + in the file named `bar`. + * `--argfile variable-name filename`: Do not use. Use `--slurpfile` instead. @@ -83,6 +83,7 @@ static void usage(int code, int keep_it_short) { " --arg a v set variable $a to value <v>;\n" " --argjson a v set variable $a to JSON value <v>;\n" " --slurpfile a f set variable $a to an array of JSON texts read from <f>;\n" + " --rawfile a f set variable $a to a string consisting of the contents of <f>;\n" " --args remaining arguments are string arguments, not files;\n" " --jsonargs remaining arguments are JSON arguments, not files;\n" " -- terminates argument processing;\n\n" @@ -443,10 +444,14 @@ int main(int argc, char* argv[]) { continue; } if (isoption(argv[i], 0, "argfile", &short_opts) || + isoption(argv[i], 0, "rawfile", &short_opts) || isoption(argv[i], 0, "slurpfile", &short_opts)) { + int raw = isoption(argv[i], 0, "rawfile", &short_opts); const char *which; if (isoption(argv[i], 0, "argfile", &short_opts)) which = "argfile"; + else if (raw) + which = "rawfile"; else which = "slurpfile"; if (i >= argc - 2) { @@ -454,7 +459,7 @@ int main(int argc, char* argv[]) { die(); } if (!jv_object_has(jv_copy(program_arguments), jv_string(argv[i+1]))) { - jv data = jv_load_file(argv[i+2], 0); + jv data = jv_load_file(argv[i+2], raw); if (!jv_is_valid(data)) { data = jv_invalid_get_msg(data); fprintf(stderr, "%s: Bad JSON in --%s %s %s: %s\n", progname, which, |