summaryrefslogtreecommitdiffstats
path: root/sys-utils/losetup.c
diff options
context:
space:
mode:
authorKarel Zak2018-04-18 15:25:20 +0200
committerKarel Zak2018-04-18 15:25:20 +0200
commit46de0fe6e39af53f55838d9b414c8314430a0c54 (patch)
tree31959c2cc3f357d5bdc9da98122429e510b25846 /sys-utils/losetup.c
parentwipefs: use scols_column_set_json_type() (diff)
downloadkernel-qcow2-util-linux-46de0fe6e39af53f55838d9b414c8314430a0c54.tar.gz
kernel-qcow2-util-linux-46de0fe6e39af53f55838d9b414c8314430a0c54.tar.xz
kernel-qcow2-util-linux-46de0fe6e39af53f55838d9b414c8314430a0c54.zip
losetup: use scols_column_set_json_type()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/losetup.c')
-rw-r--r--sys-utils/losetup.c24
1 files changed, 15 insertions, 9 deletions
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) */