"""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("--count", type=int, default=1, metavar="N", help="repeat the greeting N times (default: 1)") 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)) if args.count < 1: print("hello-hut: --count must be at least 1", file=sys.stderr) return 2 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) return 0