1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import subprocess
- import sys
- import os
- # sys.executable to use the same Python interpreter used to invoke this command
- if len(sys.argv) < 2:
- port = "8001"
- else:
- port = sys.argv[1]
- try:
- # Compile all SCCD models first
- os.chdir("wrappers")
- subprocess.check_call([sys.executable, "-m", "sccd.compiler.sccdc", "-p", "threads", "modelverse_SCCD.xml"])
- os.chdir("../hybrid_server")
- subprocess.check_call([sys.executable, "-m", "sccd.compiler.sccdc", "-p", "threads", "server.xml"])
- os.chdir("..")
- # Start up all services with auto-detection
- import glob
- service_paths = glob.glob("services/*/main.py")
- services = []
- for service_path in service_paths:
- print("[SERVICE] loaded " + service_path)
- service = subprocess.Popen([sys.executable, service_path, "127.0.0.1:%s" % port])
- services.append(service)
- #os.chdir("hybrid_server")
- #program_to_execute = [sys.executable, "run_mvk_server.py", port]
- #server = subprocess.Popen(program_to_execute)
- #server.wait()
- sys.path.append("hybrid_server")
- sys.path.append(".")
- os.chdir("hybrid_server")
- import server
- import sccd.runtime.socket2event as socket2event
- controller = server.Controller([port])
- socket2event.boot_translation_service(controller)
- controller.start()
- finally:
- # Terminate all services as well
- for service in services:
- try:
- service.terminate()
- except:
- pass
|