feat: add runtime diagnostics and path management
This commit is contained in:
@@ -1,23 +1,35 @@
|
||||
"""CoinHunter unified CLI entrypoint."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import importlib
|
||||
import sys
|
||||
|
||||
from . import __version__
|
||||
|
||||
MODULE_MAP = {
|
||||
"smart-executor": "smart_executor",
|
||||
"auto-trader": "auto_trader",
|
||||
"precheck": "precheck",
|
||||
"check-api": "check_api",
|
||||
"doctor": "doctor",
|
||||
"external-gate": "external_gate",
|
||||
"init": "init_user_state",
|
||||
"market-probe": "market_probe",
|
||||
"paths": "paths",
|
||||
"precheck": "precheck",
|
||||
"review-context": "review_context",
|
||||
"review-engine": "review_engine",
|
||||
"market-probe": "market_probe",
|
||||
"check-api": "check_api",
|
||||
"rotate-external-gate-log": "rotate_external_gate_log",
|
||||
"init": "init_user_state",
|
||||
"smart-executor": "smart_executor",
|
||||
"auto-trader": "auto_trader",
|
||||
}
|
||||
|
||||
|
||||
class VersionAction(argparse.Action):
|
||||
def __call__(self, parser, namespace, values, option_string=None):
|
||||
print(__version__)
|
||||
raise SystemExit(0)
|
||||
|
||||
|
||||
def build_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="coinhunter",
|
||||
@@ -25,7 +37,10 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
formatter_class=argparse.RawTextHelpFormatter,
|
||||
epilog=(
|
||||
"Examples:\n"
|
||||
" coinhunter doctor\n"
|
||||
" coinhunter paths\n"
|
||||
" coinhunter check-api\n"
|
||||
" coinhunter smart-executor balances\n"
|
||||
" coinhunter smart-executor hold\n"
|
||||
" coinhunter smart-executor --analysis '...' --reasoning '...' buy ENJUSDT 50\n"
|
||||
" coinhunter precheck\n"
|
||||
@@ -36,7 +51,8 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
" coinhunter init\n"
|
||||
),
|
||||
)
|
||||
parser.add_argument("command", choices=sorted(MODULE_MAP.keys()))
|
||||
parser.add_argument("--version", nargs=0, action=VersionAction, help="Print installed version and exit")
|
||||
parser.add_argument("command", nargs="?", choices=sorted(MODULE_MAP.keys()), help="CoinHunter command to run")
|
||||
parser.add_argument("args", nargs=argparse.REMAINDER)
|
||||
return parser
|
||||
|
||||
@@ -59,6 +75,9 @@ def run_python_module(module_name: str, argv: list[str]) -> int:
|
||||
def main() -> int:
|
||||
parser = build_parser()
|
||||
parsed = parser.parse_args()
|
||||
if not parsed.command:
|
||||
parser.print_help()
|
||||
return 0
|
||||
module_name = MODULE_MAP[parsed.command]
|
||||
argv = list(parsed.args)
|
||||
if argv and argv[0] == "--":
|
||||
|
||||
Reference in New Issue
Block a user