Files
Autoparts-DB/console/main.py
2026-02-15 01:29:54 +00:00

66 lines
1.6 KiB
Python

"""
Entry point for the AUTOPARTES Pick/VT220-style console application.
Usage:
python -m console # via package
python -m console.main # via module
python console/main.py # direct
"""
import argparse
import sys
from console.config import VERSION, APP_NAME, APP_SUBTITLE, DB_PATH, DEFAULT_MODE
def parse_args(argv=None):
"""Parse command-line arguments."""
parser = argparse.ArgumentParser(
prog=APP_NAME.lower(),
description=f"{APP_NAME} - {APP_SUBTITLE}",
)
parser.add_argument(
"--mode",
choices=["vt220", "modern"],
default=DEFAULT_MODE,
help=f"Display mode (default: {DEFAULT_MODE})",
)
parser.add_argument(
"--version",
action="version",
version=f"{APP_NAME} {VERSION}",
)
parser.add_argument(
"--db",
default=DB_PATH,
help="Path to the vehicle database (default: auto-detected)",
)
return parser.parse_args(argv)
def main(argv=None):
"""Main entry point: parse args, set up renderer, DB, and launch the app."""
args = parse_args(argv)
db_path = args.db
mode = args.mode
# Lazy imports so the module can be loaded without curses available
# (e.g. during tests or when just checking --version).
from console.core.database import Database
from console.renderers import create_renderer
from console.core.app import App
db = Database(db_path)
renderer = create_renderer(mode)
app = App(renderer=renderer, db=db)
try:
app.run()
finally:
db.close()
if __name__ == "__main__":
main()