52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
|
|
"""CLI entry point ``rmgr`` (skeleton — commands land with extract phases)."""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
import argparse
|
||
|
|
import sys
|
||
|
|
|
||
|
|
|
||
|
|
def main(argv: list[str] | None = None) -> int:
|
||
|
|
parser = argparse.ArgumentParser(
|
||
|
|
prog="rmgr",
|
||
|
|
description="Repo Manager CLI (helixforge.repo-manager)",
|
||
|
|
)
|
||
|
|
parser.add_argument(
|
||
|
|
"--version",
|
||
|
|
action="store_true",
|
||
|
|
help="Print package version and exit",
|
||
|
|
)
|
||
|
|
sub = parser.add_subparsers(dest="command")
|
||
|
|
|
||
|
|
sub.add_parser("version", help="Print version")
|
||
|
|
|
||
|
|
# Placeholders — implemented as extraction phases land (RMGR-WP-0001-T05+).
|
||
|
|
p_rec = sub.add_parser(
|
||
|
|
"reconcile",
|
||
|
|
help="Run consistency reconcile (not yet implemented)",
|
||
|
|
)
|
||
|
|
p_rec.add_argument("--path", default=".", help="Repository checkout path")
|
||
|
|
p_rec.add_argument("--fix", action="store_true", help="Apply safe fixes")
|
||
|
|
|
||
|
|
args = parser.parse_args(argv)
|
||
|
|
if args.version or args.command in (None, "version"):
|
||
|
|
from repo_manager import __version__
|
||
|
|
|
||
|
|
print(__version__)
|
||
|
|
return 0
|
||
|
|
|
||
|
|
if args.command == "reconcile":
|
||
|
|
print(
|
||
|
|
"rmgr reconcile: not implemented yet "
|
||
|
|
"(see docs/adr-001-implementation-foundation.md, phase P0)",
|
||
|
|
file=sys.stderr,
|
||
|
|
)
|
||
|
|
return 2
|
||
|
|
|
||
|
|
parser.print_help()
|
||
|
|
return 0
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
raise SystemExit(main())
|