File size: 799 Bytes
a74a718 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | from __future__ import annotations
import os
import sys
from hermes_cli.hf_space_update import is_hf_space_runtime, run_update_cli
DEFAULT_UPSTREAM_BIN = "/opt/hermes/.venv/bin/hermes-upstream"
def dispatch_or_exec(argv=None, env=None, execv=os.execv, upstream_bin: str | None = None):
env = env or os.environ
argv = list(sys.argv[1:] if argv is None else argv)
upstream_bin = upstream_bin or env.get("HERMES_UPSTREAM_BIN", DEFAULT_UPSTREAM_BIN)
if argv and argv[0] == "update" and is_hf_space_runtime(env):
return run_update_cli(argv[1:])
return execv(upstream_bin, [upstream_bin, *argv])
def main() -> int:
result = dispatch_or_exec()
if result is None:
return 0
return int(result)
if __name__ == "__main__":
raise SystemExit(main())
|