summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnish Athalye <me@anishathalye.com>2020-08-23 09:16:58 -0400
committerAnish Athalye <me@anishathalye.com>2020-08-23 09:16:58 -0400
commit5294594f5aa9c3affd0d656ba6843c1c0b0bce60 (patch)
tree15755bfe1edbe13948a2a92b9e334c17ad5847bf
parent1d4f4348bba8462c247eb63656907556b5da2dd3 (diff)
parent2432a2ba87271a22c8e7b43092f6b874f403463c (diff)
Merge branch 'bobwhitelock/add-force-color-option' into master
-rw-r--r--dotbot/cli.py14
-rw-r--r--dotbot/messenger/messenger.py8
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