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())