18
18
19
19
log = logging .getLogger (__name__ )
20
20
21
+ OCI_ENGINES = ["docker" , "podman" , "podman-hpc" , "shifter" ]
22
+
21
23
22
24
def _execenv2str (cmd_expr : Iterable , cmd_env : Mapping ) -> str :
23
25
return " " .join ([f"{ k } ={ v } " for k , v in cmd_env .items ()]) + " " + " " .join (cmd_expr )
@@ -27,12 +29,7 @@ def apptainer_env_vars(cmdenv: Mapping) -> list[str]:
27
29
return [f"--env={ var } ={ val } " for var , val in cmdenv .items ()]
28
30
29
31
30
- def docker_env_vars (cmdenv : Mapping ) -> list [str ]:
31
- # same syntax
32
- return apptainer_env_vars (cmdenv )
33
-
34
-
35
- def shifter_env_vars (cmdenv : Mapping ) -> list [str ]:
32
+ def oci_engine_env_vars (cmdenv : Mapping ) -> list [str ]:
36
33
# same syntax
37
34
return apptainer_env_vars (cmdenv )
38
35
@@ -69,20 +66,20 @@ def execenv_prefix(
69
66
if has_xdg :
70
67
cmdline += [f"--bind={ xdg_runtime_dir } " ]
71
68
72
- elif "docker" in config .execenv .cmd :
73
- cmdline += docker_env_vars (config .execenv .env )
74
-
75
- elif "shifter" in config .execenv .cmd :
76
- cmdline += shifter_env_vars (config .execenv .env )
69
+ elif any (engine in config .execenv .cmd for engine in OCI_ENGINES ):
70
+ cmdline += oci_engine_env_vars (config .execenv .env )
77
71
72
+ # no XDG mount with shifter
78
73
if (
79
- any (exe in config .execenv .cmd for exe in ( "docker" , "shifter" ) )
74
+ any (exe in config .execenv .cmd for exe in OCI_ENGINES )
80
75
and has_xdg
76
+ and "shifter" not in config .execenv .cmd
81
77
):
82
78
cmdline += [f"--volume={ xdg_runtime_dir } :{ xdg_runtime_dir } " ]
83
79
84
80
# now we can add the arguments
85
- cmdline += shlex .split (config .execenv .arg )
81
+ _arg = config .execenv .arg
82
+ cmdline += shlex .split (_arg if isinstance (_arg , str ) else " " .join (_arg ))
86
83
87
84
if as_string :
88
85
return _execenv2str (cmdline , cmdenv ) + " "
@@ -192,7 +189,7 @@ def dataflow() -> None:
192
189
)
193
190
)
194
191
195
- logger = logging .getLogger ("legenddataflow " )
192
+ logger = logging .getLogger ("legenddataflowscripts " )
196
193
logger .setLevel (logging .DEBUG )
197
194
logger .addHandler (handler )
198
195
0 commit comments