diff options
author | Karel Zak <kzak@redhat.com> | 2015-02-25 12:35:45 +0100 |
---|---|---|
committer | Karel Zak <kzak@redhat.com> | 2015-03-12 10:13:01 +0100 |
commit | 3d3f623dbd30af1d4a1c326e17a40ff756135531 (patch) | |
tree | d03ef6a4a9ee70f9668bd9aaa2600d066c418b97 | |
parent | 805f7b88e233b63493f4aacbe8529e7e3422984c (diff) | |
download | util-linux-3d3f623dbd30af1d4a1c326e17a40ff756135531.tar.gz |
sfdisk: add missing --color
The util already support lib/colors.c stuff, but without command line
option.
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | disk-utils/sfdisk.8 | 25 | ||||
-rw-r--r-- | disk-utils/sfdisk.c | 18 |
2 files changed, 40 insertions, 3 deletions
diff --git a/disk-utils/sfdisk.8 b/disk-utils/sfdisk.8 index 4d001de6d..66a8f9955 100644 --- a/disk-utils/sfdisk.8 +++ b/disk-utils/sfdisk.8 @@ -116,6 +116,12 @@ Back up the current partition table sectors before starting the partitioning. The default backup file name is ~/sfdisk-<device>-<offset>.bak; to use another name see \fB\-\-backup\-file\fR. .TP +.BR "\-\-color"[\fI=when\fR] +Colorize the output. The optional argument \fIwhen\fP +can be \fBauto\fR, \fBnever\fR or \fBalways\fR. If the \fIwhen\fR argument is omitted, +it defaults to \fBauto\fR. The colors can be disabled, for the current built-in default +see \fB\-\-help\fR output. See also the COLORS section. +.TP .BR \-f , " \-\-force" Disable all consistency checking. .TP @@ -349,6 +355,25 @@ restore sectors. .B dd (1) provides all necessary functionality. +.SH COLORS +Implicit coloring can be disabled by an empty file \fI/etc/terminal-colors.d/sfdisk.disable\fR. + +See +.BR terminal-colors.d (5) +for more details about colorization configuration. The logical color names +supported by +.B sfdisk +are: +.TP +.B header +The header of the output tables. +.TP +.B warn +The warning messages. +.TP +.B welcome +The welcome message. + .SH NOTES Since version 2.26 \fBsfdisk\fR no longer provides the \fB\-R\fR or \fB\-\-re\-read\fR option to force the kernel to reread the partition table. diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c index b7d448005..2e89d9482 100644 --- a/disk-utils/sfdisk.c +++ b/disk-utils/sfdisk.c @@ -186,8 +186,6 @@ static void sfdisk_init(struct sfdisk *sf) fdisk_init_debug(0); sfdiskprog_init_debug(); - colors_init(UL_COLORMODE_UNDEF, "sfdisk"); - sf->cxt = fdisk_new_context(); if (!sf->cxt) err(EXIT_FAILURE, _("failed to allocate libfdisk context")); @@ -1340,6 +1338,9 @@ static void __attribute__ ((__noreturn__)) usage(FILE *out) fputs(_(" -b, --backup backup partition table sectors (see -O)\n"), out); fputs(_(" --bytes print SIZE in bytes rather than in human readable format\n"), out); fputs(_(" -f, --force disable all consistency checking\n"), out); + fputs(_(" --color[=<when>] colorize output (auto, always or never)\n"), out); + fprintf(out, + " %s\n", USAGE_COLORS_DEFAULT); fputs(_(" -N, --partno <num> specify partition number\n"), out); fputs(_(" -n, --no-act do everything except write to device\n"), out); fputs(_(" --no-reread do not check whether the device is in use\n"), out); @@ -1367,6 +1368,7 @@ int main(int argc, char *argv[]) { const char *outarg = NULL; int rc = -EINVAL, c, longidx = -1, bytes = 0; + int colormode = UL_COLORMODE_UNDEF; struct sfdisk _sf = { .partno = -1, .interactive = isatty(STDIN_FILENO) ? 1 : 0, @@ -1381,7 +1383,8 @@ int main(int argc, char *argv[]) OPT_PARTLABEL, OPT_PARTTYPE, OPT_PARTATTRS, - OPT_BYTES + OPT_BYTES, + OPT_COLOR }; static const struct option longopts[] = { @@ -1390,6 +1393,7 @@ int main(int argc, char *argv[]) { "backup", no_argument, NULL, 'b' }, { "backup-file", required_argument, NULL, 'O' }, { "bytes", no_argument, NULL, OPT_BYTES }, + { "color", optional_argument, NULL, OPT_COLOR }, { "dump", no_argument, NULL, 'd' }, { "help", no_argument, NULL, 'h' }, { "force", no_argument, NULL, 'f' }, @@ -1526,11 +1530,19 @@ int main(int argc, char *argv[]) case OPT_BYTES: bytes = 1; break; + case OPT_COLOR: + colormode = UL_COLORMODE_AUTO; + if (optarg) + colormode = colormode_or_err(optarg, + _("unsupported color mode")); + break; default: usage(stderr); } } + colors_init(colormode, "sfdisk"); + sfdisk_init(sf); if (bytes) fdisk_set_size_unit(sf->cxt, FDISK_SIZEUNIT_BYTES); |