trove/trovedb/cli/cli_common.py

30 lines
843 B
Python
Raw Normal View History

2026-03-21 22:25:32 -05:00
"""Common code for CLI subcommands"""
import argparse
import sys
from trovedb import trove_factory, user_env, trove as tr
def display_error(msg: str) -> None:
print(f"Error: {msg}", file=sys.stderr)
class CliEnv:
"""Environment for CLI subcommands"""
def __init__(self, verbose: bool = False):
self.verbose = verbose
self.local_trove = trove_factory.get_trove(user_env.TROVEBASE) if user_env.TROVEBASE else None
def checked_trove(self) -> tr.Trove:
if self.local_trove is None:
display_error("No local trove found")
raise SystemExit()
return self.local_trove
def common_args(parser: argparse.ArgumentParser) -> None:
parser.add_argument('-v', '--verbose', action='store_true')
def get_env(args: argparse.Namespace) -> CliEnv:
return CliEnv(args.verbose)