Explorar el Código

Start implementing dynamic path mounts

Binaries may not have the path that the configuration files expect
them to, so we need to make validation select binaries on custom
paths.
nosoop hace 10 meses
padre
commit
2f8aafa3f7
Se han modificado 1 ficheros con 17 adiciones y 7 borrados
  1. 17 7
      src/smgdc/app.py

+ 17 - 7
src/smgdc/app.py

@@ -21,14 +21,24 @@ def main() -> None:
     else:
         validation_files.add(args.validation_path)
 
+    bin_mounts = {
+        "232250/tf/bin/server.dll": "server.dll",
+        "232250/tf/bin/server_srv.so": "server_srv.so",
+    }
+
+    candidate_targets: list[PlatformBinary] = []
+    for mount, bin in bin_mounts.items():
+        bin_path = pathlib.Path(bin)
+        loaded_bin: PlatformBinary
+        if bin_path.suffix == ".so":
+            loaded_bin = LinuxBinary(bin_path)
+        elif bin_path.suffix == ".dll":
+            loaded_bin = WindowsBinary(bin_path)
+        else:
+            raise ValueError(f"Unknown bin suffix {bin_path.suffix}")
+        loaded_bin.path = pathlib.Path(mount)
+        candidate_targets.append(loaded_bin)
 
-    linux_target = LinuxBinary(pathlib.Path("server_srv.so"))
-    windows_target = WindowsBinary(pathlib.Path("server.dll"))
-
-    linux_target.path = pathlib.Path("232250/tf/bin/server_srv.so")
-    windows_target.path = pathlib.Path("232250/tf/bin/server.dll")
-
-    candidate_targets: list[PlatformBinary] = [linux_target, windows_target]
     for validation_file in sorted(validation_files):
         header = validation_file.stem
         if args.validation_path.is_dir():