diff options
author | Anish Athalye <me@anishathalye.com> | 2020-08-23 09:16:58 -0400 |
---|---|---|
committer | Anish Athalye <me@anishathalye.com> | 2020-08-23 09:16:58 -0400 |
commit | 5294594f5aa9c3affd0d656ba6843c1c0b0bce60 (patch) | |
tree | 15755bfe1edbe13948a2a92b9e334c17ad5847bf | |
parent | 1d4f4348bba8462c247eb63656907556b5da2dd3 (diff) | |
parent | 2432a2ba87271a22c8e7b43092f6b874f403463c (diff) |
Merge branch 'bobwhitelock/add-force-color-option' into master
-rw-r--r-- | dotbot/cli.py | 14 | ||||
-rw-r--r-- | dotbot/messenger/messenger.py | 8 |
2 files changed, 15 insertions, 7 deletions
diff --git a/dotbot/cli.py b/dotbot/cli.py index b400dd6..32db016 100644 --- a/dotbot/cli.py +++ b/dotbot/cli.py @@ -1,4 +1,5 @@ import os, glob +import sys from argparse import ArgumentParser from .config import ConfigReader, ReadingError @@ -32,6 +33,8 @@ def add_options(parser): help='only run specified directives', metavar='DIRECTIVE') parser.add_argument('--except', nargs='+', dest='skip', help='skip specified directives', metavar='DIRECTIVE') + parser.add_argument('--force-color', dest='force_color', action='store_true', + help='force color output') parser.add_argument('--no-color', dest='no_color', action='store_true', help='disable color output') parser.add_argument('--version', action='store_true', @@ -56,8 +59,17 @@ def main(): log.set_level(Level.INFO) if options.verbose: log.set_level(Level.DEBUG) - if options.no_color: + + if options.force_color and options.no_color: + log.error("`--force-color` and `--no-color` cannot both be provided") + exit(1) + elif options.force_color: + log.use_color(True) + elif options.no_color: log.use_color(False) + else: + log.use_color(sys.stdout.isatty()) + plugin_directories = list(options.plugin_dirs) if not options.disable_built_in_plugins: from .plugins import Clean, Create, Link, Shell diff --git a/dotbot/messenger/messenger.py b/dotbot/messenger/messenger.py index b83e3f2..8fc650c 100644 --- a/dotbot/messenger/messenger.py +++ b/dotbot/messenger/messenger.py @@ -1,4 +1,3 @@ -import sys from ..util.singleton import Singleton from ..util.compat import with_metaclass from .color import Color @@ -34,14 +33,11 @@ class Messenger(with_metaclass(Singleton, object)): def error(self, message): self.log(Level.ERROR, message) - def _should_use_color(self): - return self._use_color and sys.stdout.isatty() - def _color(self, level): ''' Get a color (terminal escape sequence) according to a level. ''' - if not self._should_use_color(): + if not self._use_color: return '' elif level < Level.DEBUG: return '' @@ -60,7 +56,7 @@ class Messenger(with_metaclass(Singleton, object)): ''' Get a reset color (terminal escape sequence). ''' - if not self._should_use_color(): + if not self._use_color: return '' else: return Color.RESET |