mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
sambatool: heuristics to decided whether colour is wanted
The easy cases are --color=yes and --color=no. With --color=auto, we use color if it seems we're writing to a TTY. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Thu May 31 04:34:52 CEST 2018 on sn-devel-144
This commit is contained in:
parent
e58719d13c
commit
8426c428ba
@ -18,6 +18,7 @@
|
||||
|
||||
import optparse, samba
|
||||
from samba import getopt as options
|
||||
from samba import colour
|
||||
from ldb import LdbError
|
||||
import sys, traceback
|
||||
import textwrap
|
||||
@ -189,6 +190,29 @@ class Command(object):
|
||||
logger.addHandler(logging.StreamHandler(self.errf))
|
||||
return logger
|
||||
|
||||
def apply_colour_choice(self, requested):
|
||||
"""Heuristics to work out whether the user wants colour output, from a
|
||||
--color=yes|no|auto option. This alters the ANSI 16 bit colour
|
||||
"constants" in the colour module to be either real colours or empty
|
||||
strings.
|
||||
"""
|
||||
requested = requested.lower()
|
||||
if requested == 'no':
|
||||
colour.switch_colour_off()
|
||||
|
||||
elif requested == 'yes':
|
||||
colour.switch_colour_on()
|
||||
|
||||
elif requested == 'auto':
|
||||
if (hasattr(self.outf, 'isatty') and self.outf.isatty()):
|
||||
colour.switch_colour_on()
|
||||
else:
|
||||
colour.switch_colour_off()
|
||||
|
||||
else:
|
||||
raise CommandError("Unknown --color option: %s "
|
||||
"please choose from yes, no, auto")
|
||||
|
||||
|
||||
class SuperCommand(Command):
|
||||
"""A samba-tool command with subcommands."""
|
||||
|
Loading…
Reference in New Issue
Block a user