diff options
author | Stephen Hemminger <stephen@networkplumber.org> | 2024-01-02 09:30:15 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen@networkplumber.org> | 2024-01-03 16:48:33 -0800 |
commit | 27a477ba80da1c2fa755825090b17d7a5d52ceff (patch) | |
tree | dce7d1f274070802fb437b194348632b744cf00f | |
parent | 6e0d4e91a554e25634da9ab19cd6430cba6a2a25 (diff) | |
download | iproute2-27a477ba80da1c2fa755825090b17d7a5d52ceff.tar.gz |
rdma: add oneline flag
Add oneline output format like other commands.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
-rw-r--r-- | man/man8/rdma.8 | 12 | ||||
-rw-r--r-- | rdma/dev.c | 2 | ||||
-rw-r--r-- | rdma/link.c | 2 | ||||
-rw-r--r-- | rdma/rdma.c | 11 | ||||
-rw-r--r-- | rdma/stat.c | 2 | ||||
-rw-r--r-- | rdma/sys.c | 3 | ||||
-rw-r--r-- | rdma/utils.c | 2 |
7 files changed, 25 insertions, 9 deletions
diff --git a/man/man8/rdma.8 b/man/man8/rdma.8 index c9e5d50d5..5088b9ec3 100644 --- a/man/man8/rdma.8 +++ b/man/man8/rdma.8 @@ -25,8 +25,9 @@ rdma \- RDMA tool .ti -8 .IR OPTIONS " := { " \fB\-V\fR[\fIersion\fR] | -\fB\-d\fR[\fIetails\fR] } -\fB\-j\fR[\fIson\fR] } +\fB\-d\fR[\fIetails\fR] | +\fB\-j\fR[\fIson\fR] | +\fB\-o\fR[\fIneline\fR] | \fB\-p\fR[\fIretty\fR] } .SH OPTIONS @@ -63,6 +64,13 @@ When combined with -j generate a pretty JSON output. .BR "\-j" , " --json" Generate JSON output. +.TP +.BR "\-o" , " \-oneline" +output each record on a single line, replacing line feeds +with the +.B '\e' +character. + .SS .I OBJECT diff --git a/rdma/dev.c b/rdma/dev.c index 7496162df..31868c6fe 100644 --- a/rdma/dev.c +++ b/rdma/dev.c @@ -94,7 +94,7 @@ static void dev_print_caps(struct rd *rd, struct nlattr **tb) caps = mnl_attr_get_u64(tb[RDMA_NLDEV_ATTR_CAP_FLAGS]); - print_string(PRINT_FP, NULL, "\n caps: <", NULL); + print_string(PRINT_FP, NULL, "%s caps: <", _SL_); open_json_array(PRINT_JSON, "caps"); for (idx = 0; caps; idx++) { if (caps & 0x1) diff --git a/rdma/link.c b/rdma/link.c index 48f7b0877..d7d9558b4 100644 --- a/rdma/link.c +++ b/rdma/link.c @@ -96,7 +96,7 @@ static void link_print_caps(struct rd *rd, struct nlattr **tb) caps = mnl_attr_get_u64(tb[RDMA_NLDEV_ATTR_CAP_FLAGS]); - print_string(PRINT_FP, NULL, "\n caps: <", NULL); + print_string(PRINT_FP, NULL, "%s caps: <", _SL_); open_json_array(PRINT_JSON, "caps"); for (idx = 0; caps; idx++) { if (caps & 0x1) diff --git a/rdma/rdma.c b/rdma/rdma.c index bee1985f9..131c6b2ab 100644 --- a/rdma/rdma.c +++ b/rdma/rdma.c @@ -16,7 +16,7 @@ static void help(char *name) pr_out("Usage: %s [ OPTIONS ] OBJECT { COMMAND | help }\n" " %s [ -f[orce] ] -b[atch] filename\n" "where OBJECT := { dev | link | resource | system | statistic | help }\n" - " OPTIONS := { -V[ersion] | -d[etails] | -j[son] | -p[retty] -r[aw]}\n", name, name); + " OPTIONS := { -V[ersion] | -d[etails] | -j[son] | -p[retty] | -r[aw]}\n", name, name); } static int cmd_help(struct rd *rd) @@ -89,6 +89,7 @@ int main(int argc, char **argv) { "version", no_argument, NULL, 'V' }, { "help", no_argument, NULL, 'h' }, { "json", no_argument, NULL, 'j' }, + { "oneline", no_argument, NULL, 'o' }, { "pretty", no_argument, NULL, 'p' }, { "details", no_argument, NULL, 'd' }, { "raw", no_argument, NULL, 'r' }, @@ -101,13 +102,14 @@ int main(int argc, char **argv) bool show_details = false; bool show_raw = false; bool force = false; + bool oneline = false; struct rd rd = {}; char *filename; int opt; int err; filename = basename(argv[0]); - while ((opt = getopt_long(argc, argv, ":Vhdrpjfb:", + while ((opt = getopt_long(argc, argv, ":Vhdropjfb:", long_options, NULL)) >= 0) { switch (opt) { case 'V': @@ -126,6 +128,9 @@ int main(int argc, char **argv) case 'r': show_raw = true; break; + case 'o': + oneline = true; + break; case 'j': ++json; break; @@ -151,6 +156,8 @@ int main(int argc, char **argv) argc -= optind; argv += optind; + _SL_ = oneline ? "\\" : "\n"; + rd.show_details = show_details; rd.show_driver_details = show_driver_details; rd.show_raw = show_raw; diff --git a/rdma/stat.c b/rdma/stat.c index b428a62ac..e90b6197c 100644 --- a/rdma/stat.c +++ b/rdma/stat.c @@ -291,7 +291,7 @@ static int res_counter_line(struct rd *rd, const char *name, int index, res_get_hwcounters(rd, hwc_table, true); isfirst = true; open_json_array(PRINT_JSON, "lqpn"); - print_string(PRINT_FP, NULL, "\n LQPN: <", NULL); + print_string(PRINT_FP, NULL, "%s LQPN: <", _SL_); mnl_attr_for_each_nested(nla_entry, qp_table) { struct nlattr *qp_line[RDMA_NLDEV_ATTR_MAX] = {}; err = mnl_attr_parse_nested(nla_entry, rd_attr_cb, qp_line); diff --git a/rdma/sys.c b/rdma/sys.c index 7bb0edbfe..7dbe44094 100644 --- a/rdma/sys.c +++ b/rdma/sys.c @@ -51,7 +51,8 @@ static int sys_show_parse_cb(const struct nlmsghdr *nlh, void *data) if (tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK]) cof = mnl_attr_get_u8(tb[RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK]); - print_on_off(PRINT_ANY, "copy-on-fork", "copy-on-fork %s\n", cof); + print_on_off(PRINT_ANY, "copy-on-fork", "copy-on-fork %s", cof); + print_nl(); return MNL_CB_OK; } diff --git a/rdma/utils.c b/rdma/utils.c index f332b2602..aeb627be7 100644 --- a/rdma/utils.c +++ b/rdma/utils.c @@ -774,7 +774,7 @@ struct dev_map *dev_map_lookup(struct rd *rd, bool allow_port_index) void newline(struct rd *rd) { close_json_object(); - print_string(PRINT_FP, NULL, "\n", NULL); + print_nl(); } void newline_indent(struct rd *rd) |