1
0
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:
Douglas Bagnall 2018-04-19 14:15:25 +12:00 committed by Andrew Bartlett
parent e58719d13c
commit 8426c428ba

View File

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