~reviewer/hello-hut

948f89ca1c31b64aace58b2e74e86ebe6e9f91db — Tomás Varga 3 months ago e1715ad
Respect NO_COLOR and add --color
1 files changed, 16 insertions(+), 1 deletions(-)

M src/hello_hut/cli.py
M src/hello_hut/cli.py => src/hello_hut/cli.py +16 -1
@@ 1,6 1,7 @@
"""Command-line interface for hello-hut."""

import argparse
import os
import sys

from . import __version__


@@ 20,11 21,22 @@ def build_parser():
                        help="say good morning, afternoon or evening")
    parser.add_argument("--count", type=int, default=1, metavar="N",
                        help="repeat the greeting N times (default: 1)")
    parser.add_argument("--color", choices=("auto", "always", "never"),
                        default="auto", help="colorize the output")
    parser.add_argument("--version", action="version",
                        version=f"%(prog)s {__version__}")
    return parser


def use_color(mode, stream=sys.stdout):
    """Decide whether to colorize, honouring NO_COLOR (https://no-color.org)."""
    if mode == "always":
        return True
    if mode == "never" or os.environ.get("NO_COLOR"):
        return False
    return stream.isatty()


def main(argv=None):
    args = build_parser().parse_args(argv)
    config = load_config()


@@ 37,5 49,8 @@ def main(argv=None):
    salutation = time_of_day_greeting() if args.time_of_day else None
    message = greet(name, shout=shout, salutation=salutation)
    for _ in range(args.count):
        print(message)
        if use_color(args.color):
            print(f"\033[1;32m{message}\033[0m")
        else:
            print(message)
    return 0