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