"""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