diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-06-08 22:59:51 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-06-08 22:59:51 +0200 |
commit | b98a91bf2ef4c8189dd9b483ed530e95f79ba53c (patch) | |
tree | 1ed9f9265012162510556c1976fa3e3daa214ee3 | |
parent | 453d8afffd406850f399a493f1f542dbc6da2b30 (diff) |
add an option for printing output as a single line
-rw-r--r-- | commands.c | 3 | ||||
-rw-r--r-- | commands.h | 1 | ||||
-rw-r--r-- | main.c | 7 |
3 files changed, 9 insertions, 2 deletions
@@ -11,6 +11,7 @@ #include "commands.h" static struct blob_buf status; +bool single_line = false; static void no_cb(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg) { @@ -131,7 +132,7 @@ static void uqmi_print_result(struct blob_attr *data) if (!blob_len(data)) return; - str = blobmsg_format_json_indent(blob_data(data), false, 0); + str = blobmsg_format_json_indent(blob_data(data), false, single_line ? -1 : 0); if (!str) return; @@ -46,6 +46,7 @@ enum uqmi_command { }; #undef __uqmi_command +extern bool single_line; extern const struct uqmi_cmd_handler uqmi_cmd_handler[]; void uqmi_add_command(char *arg, int longidx); bool uqmi_run_commands(struct qmi_dev *qmi); @@ -18,6 +18,7 @@ static const char *device; #define __uqmi_command(_name, _optname, _arg, _option) { #_optname, _arg##_argument, NULL, CMD_OPT(__UQMI_COMMAND_##_name) } static const struct option uqmi_getopt[] = { __uqmi_commands, + { "single", no_argument, NULL, 's' }, { "device", required_argument, NULL, 'd' }, { "keep-client-id", required_argument, NULL, 'k' }, { "release-client-id", required_argument, NULL, 'r' }, @@ -29,6 +30,7 @@ static int usage(const char *progname) { fprintf(stderr, "Usage: %s <options|actions>\n" "Options:\n" + " --single, -s: Print output as a single line (for scripts)\n" " --device=NAME, -d NAME: Set device name to NAME (required)\n" " --keep-client-id <name>: Keep Client ID for service <name>\n" " (implies --keep-client-id)\n" @@ -84,7 +86,7 @@ int main(int argc, char **argv) signal(SIGINT, handle_exit_signal); signal(SIGTERM, handle_exit_signal); - while ((ch = getopt_long(argc, argv, "d:k:", uqmi_getopt, NULL)) != -1) { + while ((ch = getopt_long(argc, argv, "d:k:s", uqmi_getopt, NULL)) != -1) { int cmd_opt = CMD_OPT(ch); if (ch < 0 && cmd_opt >= 0 && cmd_opt < __UQMI_COMMAND_LAST) { @@ -102,6 +104,9 @@ int main(int argc, char **argv) case 'd': device = optarg; break; + case 's': + single_line = true; + break; default: return usage(argv[0]); } |