~reviewer/hello-hut

ref: 2b1decb4b3da4365861a528fad0cbbb8ba79ed7c hello-hut/src/hello_hut/cli.py -rw-r--r-- 1.1 KiB
2b1decb4 — Dana Whitfield tests: add a phrasebook fixture for snapshot tests 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
"""Command-line interface for hello-hut."""

import argparse
import sys

from . import __version__
from .config import load_config
from .greetings import DEFAULT_NAME, greet, time_of_day_greeting


def build_parser():
    parser = argparse.ArgumentParser(
        prog="hello-hut",
        description="A friendly greeting tool for your terminal.",
    )
    parser.add_argument("name", nargs="?", help="who to greet")
    parser.add_argument("--shout", action="store_true",
                        help="print the greeting in capitals")
    parser.add_argument("--time-of-day", action="store_true",
                        help="say good morning, afternoon or evening")
    parser.add_argument("--version", action="version",
                        version=f"%(prog)s {__version__}")
    return parser


def main(argv=None):
    args = build_parser().parse_args(argv)
    config = load_config()
    name = args.name or config.get("name", DEFAULT_NAME)
    shout = args.shout or bool(config.get("shout", False))

    salutation = time_of_day_greeting() if args.time_of_day else None
    message = greet(name, shout=shout, salutation=salutation)
    print(message)
    return 0