summaryrefslogtreecommitdiffstats
path: root/sys-utils/lsmem.c
diff options
context:
space:
mode:
authorKarel Zak2018-04-05 11:54:57 +0200
committerKarel Zak2018-04-05 12:14:46 +0200
commit704f9ba6e6f27c17e544987ec0e2c93fc08d512a (patch)
treec09c5b3cb038b687c1e2a0e7149477ec374f98a3 /sys-utils/lsmem.c
parentlibsmartcols: make sure boolean is true/false only (diff)
downloadkernel-qcow2-util-linux-704f9ba6e6f27c17e544987ec0e2c93fc08d512a.tar.gz
kernel-qcow2-util-linux-704f9ba6e6f27c17e544987ec0e2c93fc08d512a.tar.xz
kernel-qcow2-util-linux-704f9ba6e6f27c17e544987ec0e2c93fc08d512a.zip
lsmem: improve JSON output
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/lsmem.c')
-rw-r--r--sys-utils/lsmem.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/sys-utils/lsmem.c b/sys-utils/lsmem.c
index 3e226864a..83a393046 100644
--- a/sys-utils/lsmem.c
+++ b/sys-utils/lsmem.c
@@ -665,8 +665,28 @@ int main(int argc, char **argv)
for (i = 0; i < ncolumns; i++) {
struct coldesc *ci = get_column_desc(i);
- if (!scols_table_new_column(lsmem->table, ci->name, ci->whint, ci->flags))
+ struct libscols_column *cl;
+
+ cl = scols_table_new_column(lsmem->table, ci->name, ci->whint, ci->flags);
+ if (!cl)
err(EXIT_FAILURE, _("Failed to initialize output column"));
+
+ if (lsmem->json) {
+ int id = get_column_id(i);
+
+ switch (id) {
+ case COL_SIZE:
+ if (!lsmem->bytes)
+ break;
+ /* fallthrough */
+ case COL_NODE:
+ scols_column_set_json_type(cl, SCOLS_JSON_NUMBER);
+ break;
+ case COL_REMOVABLE:
+ scols_column_set_json_type(cl, SCOLS_JSON_BOOLEAN);
+ break;
+ }
+ }
}
if (splitarg) {