From 46de0fe6e39af53f55838d9b414c8314430a0c54 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 18 Apr 2018 15:25:20 +0200 Subject: losetup: use scols_column_set_json_type() Signed-off-by: Karel Zak --- sys-utils/losetup.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'sys-utils/losetup.c') diff --git a/sys-utils/losetup.c b/sys-utils/losetup.c index 9c479c02d..7c9145a88 100644 --- a/sys-utils/losetup.c +++ b/sys-utils/losetup.c @@ -64,21 +64,23 @@ struct colinfo { double whint; int flags; const char *help; + + int json_type; /* default is string */ }; static struct colinfo infos[] = { - [COL_AUTOCLR] = { "AUTOCLEAR", 1, SCOLS_FL_RIGHT, N_("autoclear flag set")}, + [COL_AUTOCLR] = { "AUTOCLEAR", 1, SCOLS_FL_RIGHT, N_("autoclear flag set"), SCOLS_JSON_BOOLEAN}, [COL_BACK_FILE] = { "BACK-FILE", 0.3, 0, N_("device backing file")}, - [COL_BACK_INO] = { "BACK-INO", 4, SCOLS_FL_RIGHT, N_("backing file inode number")}, + [COL_BACK_INO] = { "BACK-INO", 4, SCOLS_FL_RIGHT, N_("backing file inode number"), SCOLS_JSON_NUMBER}, [COL_BACK_MAJMIN] = { "BACK-MAJ:MIN", 6, 0, N_("backing file major:minor device number")}, [COL_NAME] = { "NAME", 0.25, 0, N_("loop device name")}, - [COL_OFFSET] = { "OFFSET", 5, SCOLS_FL_RIGHT, N_("offset from the beginning")}, - [COL_PARTSCAN] = { "PARTSCAN", 1, SCOLS_FL_RIGHT, N_("partscan flag set")}, - [COL_RO] = { "RO", 1, SCOLS_FL_RIGHT, N_("read-only device")}, - [COL_SIZELIMIT] = { "SIZELIMIT", 5, SCOLS_FL_RIGHT, N_("size limit of the file in bytes")}, + [COL_OFFSET] = { "OFFSET", 5, SCOLS_FL_RIGHT, N_("offset from the beginning"), SCOLS_JSON_NUMBER}, + [COL_PARTSCAN] = { "PARTSCAN", 1, SCOLS_FL_RIGHT, N_("partscan flag set"), SCOLS_JSON_BOOLEAN}, + [COL_RO] = { "RO", 1, SCOLS_FL_RIGHT, N_("read-only device"), SCOLS_JSON_BOOLEAN}, + [COL_SIZELIMIT] = { "SIZELIMIT", 5, SCOLS_FL_RIGHT, N_("size limit of the file in bytes"), SCOLS_JSON_NUMBER}, [COL_MAJMIN] = { "MAJ:MIN", 3, 0, N_("loop device major:minor number")}, - [COL_DIO] = { "DIO", 1, SCOLS_FL_RIGHT, N_("access backing file with direct-io")}, - [COL_LOGSEC] = { "LOG-SEC", 4, SCOLS_FL_RIGHT, N_("logical sector size in bytes")}, + [COL_DIO] = { "DIO", 1, SCOLS_FL_RIGHT, N_("access backing file with direct-io"), SCOLS_JSON_BOOLEAN}, + [COL_LOGSEC] = { "LOG-SEC", 4, SCOLS_FL_RIGHT, N_("logical sector size in bytes"), SCOLS_JSON_NUMBER}, }; static int columns[ARRAY_SIZE(infos) * 2] = {-1}; @@ -328,9 +330,13 @@ static int show_table(struct loopdev_cxt *lc, for (i = 0; i < ncolumns; i++) { struct colinfo *ci = get_column_info(i); + struct libscols_column *cl; - if (!scols_table_new_column(tb, ci->name, ci->whint, ci->flags)) + cl = scols_table_new_column(tb, ci->name, ci->whint, ci->flags); + if (!cl) err(EXIT_FAILURE, _("failed to allocate output column")); + if (json) + scols_column_set_json_type(cl, ci->json_type); } /* only one loopdev requested (already assigned to loopdev_cxt) */ -- cgit v1.2.3-55-g7522