feat(console): scaffold project structure and config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
65
console/main.py
Normal file
65
console/main.py
Normal file
@@ -0,0 +1,65 @@
|
||||
"""
|
||||
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()
|
||||
Reference in New Issue
Block a user