grpc_client/run_client.py

41 lines
1.0 KiB
Python
Raw Permalink Normal View History

2025-11-13 03:01:00 +08:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
2026-02-03 13:36:52 +08:00
Unified entrypoint for running client scripts.
Usage:
2025-11-13 03:01:00 +08:00
python run_client.py get_joint_state_client
python run_client.py movej_client
"""
import os
import sys
import subprocess
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
GENERATED_DIR = os.path.join(PROJECT_ROOT, "generated")
CLIENTS_DIR = os.path.join(PROJECT_ROOT, "clients")
if len(sys.argv) < 2:
2026-02-03 13:36:52 +08:00
print("Please provide a client script name, e.g. get_joint_state_client")
2025-11-13 03:01:00 +08:00
sys.exit(1)
client_name = sys.argv[1]
client_script = os.path.join(CLIENTS_DIR, f"{client_name}.py")
if not os.path.isfile(client_script):
2026-02-03 13:36:52 +08:00
print(f"Client script not found: {client_script}")
2025-11-13 03:01:00 +08:00
sys.exit(1)
2026-02-03 13:36:52 +08:00
module_name = f"clients.{client_name}"
env = os.environ.copy()
extra_paths = [PROJECT_ROOT, GENERATED_DIR]
existing = env.get("PYTHONPATH", "")
env["PYTHONPATH"] = os.pathsep.join(extra_paths + ([existing] if existing else []))
subprocess.run(
[sys.executable, "-m", module_name] + sys.argv[2:],
cwd=PROJECT_ROOT,
env=env,
)