diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..17cdef2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +# giftwrap changelog + +## 0.2.0 +- Adds colorization to the logging +- Adds a CHANGELOG diff --git a/giftwrap/color.py b/giftwrap/color.py new file mode 100644 index 0000000..00e700a --- /dev/null +++ b/giftwrap/color.py @@ -0,0 +1,43 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2014, Craig Tracey +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations + +from colorama import AnsiToWin32, Fore, Style +from logging import INFO, DEBUG, WARNING, ERROR, CRITICAL, StreamHandler + + +class ColorStreamHandler(StreamHandler): + + log_colors = { + INFO: Fore.GREEN, + DEBUG: Fore.CYAN, + WARNING: Fore.YELLOW, + ERROR: Fore.RED, + CRITICAL: Fore.RED, + } + + def __init__(self, stream): + StreamHandler.__init__(self, AnsiToWin32(stream).stream) + + @property + def is_tty(self): + isatty = getattr(self.stream, 'isatty', None) + return isatty and isatty() + + def format(self, record): + msg = StreamHandler.format(self, record) + if self.is_tty: + msg = self.log_colors[record.levelno] + msg + Style.RESET_ALL + return msg diff --git a/giftwrap/log.py b/giftwrap/log.py index 28643ff..fbf7f81 100644 --- a/giftwrap/log.py +++ b/giftwrap/log.py @@ -18,6 +18,8 @@ import logging import sys +from giftwrap.color import ColorStreamHandler + NAME = 'giftwrap' logger = None @@ -29,7 +31,7 @@ def get_logger(): return logger logger = logging.getLogger(NAME) - log_handler = logging.StreamHandler(sys.stdout) + log_handler = ColorStreamHandler(sys.stdout) fmt = logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s', datefmt='%F %H:%M:%S') log_handler.setFormatter(fmt) diff --git a/requirements.txt b/requirements.txt index 64feaac..0de39f1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ argparse +colorama pbr GitPython==0.3.2.RC1 giturlparse.py diff --git a/setup.cfg b/setup.cfg index ca2f25d..81b9ff6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = giftwrap -version = 0.1.0 +version = 0.2.0 summary = giftwrap - A tool to build full-stack native system packages. description-file = README.md