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>
This commit is contained in:
Karel Zak 2015-02-25 12:35:45 +01:00
parent 62dc0ee83b
commit da25898b7a
2 changed files with 40 additions and 3 deletions

View File

@ -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.

View File

@ -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);