in scripts/render/run.py [0:0]
def on_modified(self, event):
"""When a viewer file is modified from the UI, the appropriate viewer runs on the host.
Args:
event (watchdog.FileSystemEvent): Watchdog event for when viewer file has been modified.
"""
if isinstance(event, DirModifiedEvent):
return
ipc_name = os.path.basename(event.src_path)
host_os = get_os_type(config.LOCALHOST)
if ipc_name == config.DOCKER_RIFT_VIEWER_IPC and host_os != OSType.WINDOWS:
print(glog.yellow("RiftViewer is only supported on Windows!"))
return
app_name = config.get_app_name(ipc_name)
if not app_name:
print(glog.red(f"Invalid IPC name: {ipc_name}"))
return
try:
output_dir = posixpath.join(
self.local_project_root, config.OUTPUT_ROOT_NAME
)
if ipc_name == config.DOCKER_RIFT_VIEWER_IPC:
fused_dir = posixpath.join(output_dir, image_type_paths["fused"])
fused_json = self.get_fused_json(fused_dir)
if not fused_json:
print(glog.red(f"Cannot find fused rig json in {fused_dir}"))
return
cmd_flags = f"""--rig={posixpath.join(fused_dir, fused_json)} \
--catalog={posixpath.join(fused_dir, "fused.json")} \
--strip_files={posixpath.join(fused_dir, "fused_0.bin")}"""
elif ipc_name in [config.DOCKER_SMR_IPC, config.DOCKER_SMR_ONSCREEN_IPC]:
flags_render = self.get_render_flags("export")
if ipc_name == config.DOCKER_SMR_IPC:
flags_render["output"] = posixpath.join(
output_dir, image_type_paths["exports"]
)
flags_smr = [flag["name"] for flag in bin_to_flags[app_name]]
cmd_flags = ""
ignore_onscreen = ["format", "output"]
for flag in flags_render:
if flag in flags_smr:
if (
flag in ignore_onscreen
and ipc_name == config.DOCKER_SMR_ONSCREEN_IPC
):
continue
cmd_flags += f" --{flag}={flags_render[flag]}"
cmd_flags = cmd_flags.replace(
config.DOCKER_INPUT_ROOT, self.local_project_root
)
cmd = f"{posixpath.join(FLAGS.local_bin, app_name)} {cmd_flags}"
if os.name != "nt": # GLOG initiatives don't work in Powershell/cmd
cmd = f"GLOG_alsologtostderr=1 GLOG_stderrthreshold=0 {cmd}"
run_command(cmd)
except Exception as e:
print(glog.red(e))