diff options
author | Karel Zak | 2018-04-05 11:54:57 +0200 |
---|---|---|
committer | Karel Zak | 2018-04-05 12:14:46 +0200 |
commit | 704f9ba6e6f27c17e544987ec0e2c93fc08d512a (patch) | |
tree | c09c5b3cb038b687c1e2a0e7149477ec374f98a3 /sys-utils/lsmem.c | |
parent | libsmartcols: make sure boolean is true/false only (diff) | |
download | kernel-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.c | 22 |
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) { |