@@ -39,6 +39,11 @@ def __init__(self, args):
39
39
self .args = args
40
40
self .args .container_db = Path (args .container_db )
41
41
42
+ def safe_exec (self , args ):
43
+ if self .args .debug :
44
+ print (" " .join (args ))
45
+ subprocess .run (args , shell = False , check = True , text = True , stdout = sys .stdout , stderr = sys .stderr )
46
+
42
47
def retrieve_singularity_image (self , local_filename ):
43
48
ctx = ssl .create_default_context ()
44
49
ctx .check_hostname = False
@@ -100,7 +105,7 @@ def run_retrieve_db(self):
100
105
101
106
retrieve_db_args = [
102
107
container_engine ,
103
- "run" ,
108
+ "run" if container_engine == "docker" else "exec" ,
104
109
mount_arg ,
105
110
str (expanded_gxdb ) + ":" + str (self .args .container_db ),
106
111
* extra_docker_args ,
@@ -111,11 +116,7 @@ def run_retrieve_db(self):
111
116
str (self .args .container_db / gxdb_name ),
112
117
* extra_db_args ,
113
118
]
114
- subprocess .run (
115
- retrieve_db_args ,
116
- shell = False ,
117
- check = True ,
118
- )
119
+ self .safe_exec (retrieve_db_args )
119
120
120
121
def run_gx (self ):
121
122
expanded_gxdb = Path (os .path .realpath (os .path .dirname (self .args .gx_db )))
@@ -137,7 +138,7 @@ def run_gx(self):
137
138
138
139
docker_args = [
139
140
container_engine ,
140
- "run" ,
141
+ "run" if container_engine == "docker" else "exec" ,
141
142
mount_arg ,
142
143
str (expanded_gxdb ) + ":" + str (self .args .container_db ),
143
144
mount_arg ,
@@ -167,9 +168,7 @@ def run_gx(self):
167
168
if self .args .env_file :
168
169
docker_args .extend (["--env-file" , str (Path ("/sample-volume/" ) / self .args .env_file )])
169
170
170
- if self .args .debug :
171
- print (docker_args )
172
- subprocess .run (docker_args , shell = False , check = True )
171
+ self .safe_exec (docker_args )
173
172
174
173
def run_verify_checksums (self ):
175
174
expanded_gxdb = Path (os .path .realpath (os .path .dirname (self .args .gx_db )))
@@ -186,7 +185,7 @@ def run_verify_checksums(self):
186
185
187
186
docker_args = [
188
187
container_engine ,
189
- "run" ,
188
+ "run" if container_engine == "docker" else "exec" ,
190
189
mount_arg ,
191
190
str (expanded_gxdb ) + ":" + str (self .args .container_db ),
192
191
docker_image ,
@@ -196,9 +195,7 @@ def run_verify_checksums(self):
196
195
str (self .args .container_db / gxdb_name ),
197
196
"--debug" ,
198
197
]
199
- if self .args .debug :
200
- print (docker_args )
201
- subprocess .run (docker_args , shell = False , check = True )
198
+ self .safe_exec (docker_args )
202
199
203
200
def run (self ):
204
201
self .run_retrieve_db ()
0 commit comments