aboutsummaryrefslogtreecommitdiff
path: root/sbin/bectl
diff options
context:
space:
mode:
authorRobert Wing <rew@FreeBSD.org>2020-08-19 00:09:39 +0000
committerRobert Wing <rew@FreeBSD.org>2020-08-19 00:09:39 +0000
commitdeaff6531320db94de9060dc59c9620033059a96 (patch)
tree53df36c4f6ce1777ba2757780ac73dde7dafe83b /sbin/bectl
parenteeed0c98a1fa769b74e96590d4ade1825e2ca2f9 (diff)
bectl(8): Fix output of `bectl list` for the 'Mountpoint' column.
Currently, the output of `bectl list` doesn't align the 'Mountpoint' column correctly when the 'mounted' property of a boot environment dataset is longer than the default column width. Set the 'Mountpoint' column width to the boot environment dataset with the longest 'mounted' property or to the default width, whichever is greater. PR: 241064 Reported by: vermaden@interia.pl Reviewed by: kevans (mentor) Approved by: kevans (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D26048
Notes
svn path=/head/; revision=364369
Diffstat (limited to 'sbin/bectl')
-rw-r--r--sbin/bectl/bectl_list.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/sbin/bectl/bectl_list.c b/sbin/bectl/bectl_list.c
index 6eaa960acce7..757a773e6d32 100644
--- a/sbin/bectl/bectl_list.c
+++ b/sbin/bectl/bectl_list.c
@@ -292,19 +292,23 @@ print_headers(nvlist_t *props, struct printc *pc)
nvpair_t *cur;
nvlist_t *dsprops;
char *propstr;
- size_t be_maxcol;
+ size_t be_maxcol, mount_colsz;
if (pc->show_all_datasets || pc->show_snaps)
chosen_be_header = HEADER_BEPLUS;
else
chosen_be_header = HEADER_BE;
be_maxcol = strlen(chosen_be_header);
+ mount_colsz = strlen(HEADER_MOUNT);
for (cur = nvlist_next_nvpair(props, NULL); cur != NULL;
cur = nvlist_next_nvpair(props, cur)) {
be_maxcol = MAX(be_maxcol, strlen(nvpair_name(cur)));
+ nvpair_value_nvlist(cur, &dsprops);
+
+ if (nvlist_lookup_string(dsprops, "mounted", &propstr) == 0)
+ mount_colsz = MAX(mount_colsz, strlen(propstr));
if (!pc->show_all_datasets && !pc->show_snaps)
continue;
- nvpair_value_nvlist(cur, &dsprops);
if (nvlist_lookup_string(dsprops, "dataset", &propstr) != 0)
continue;
be_maxcol = MAX(be_maxcol, strlen(propstr) + INDENT_INCREMENT);
@@ -316,10 +320,10 @@ print_headers(nvlist_t *props, struct printc *pc)
pc->be_colsz = be_maxcol;
pc->active_colsz_def = strlen(HEADER_ACTIVE);
- pc->mount_colsz = strlen(HEADER_MOUNT);
+ pc->mount_colsz = mount_colsz;
pc->space_colsz = strlen(HEADER_SPACE);
- printf("%*s %s %s %s %s\n", -pc->be_colsz, chosen_be_header,
- HEADER_ACTIVE, HEADER_MOUNT, HEADER_SPACE, HEADER_CREATED);
+ printf("%*s %s %*s %s %s\n", -pc->be_colsz, chosen_be_header,
+ HEADER_ACTIVE, -pc->mount_colsz, HEADER_MOUNT, HEADER_SPACE, HEADER_CREATED);
/*
* All other invocations in which we aren't using the default header