@@ -49,6 +49,15 @@ def _cleanup(self, module_dir):
49
49
break
50
50
shutil .rmtree (module_dir )
51
51
52
+ @property
53
+ def container_base (self ):
54
+ """
55
+ Quickly return what is being used for the container base
56
+ """
57
+ if not self .settings .container_base :
58
+ return self .settings .module_base
59
+ return self .settings .container_base
60
+
52
61
def container_dir (self , name ):
53
62
"""
54
63
Use a custom container directory, otherwise default to module dir.
@@ -95,7 +104,7 @@ def _test(self, module_name, module_dir, tag, template="test.sh"):
95
104
Run specific tests for this module
96
105
"""
97
106
# Generate a test template
98
- template = self ._load_template (template )
107
+ template = self ._load_template (template or "test.sh" )
99
108
test_file = os .path .join (module_dir , "test.sh" )
100
109
101
110
# Generate the test script
@@ -117,7 +126,7 @@ def _mkdirp(self, dirnames):
117
126
118
127
def add (self , sif , module_name ):
119
128
"""
120
- Add a container directly as a module
129
+ Add a container directly as a module, copying the file.
121
130
"""
122
131
name = self .add_namespace (module_name )
123
132
registry_dir = self .settings .registry
@@ -145,7 +154,7 @@ def add(self, sif, module_name):
145
154
name = module_name .replace ("/" , "-" )
146
155
digest = utils .get_file_hash (sif )
147
156
dest = os .path .join (container_dir , "%s-sha256:%s.sif" % (name , digest ))
148
- shutil .move (sif , dest )
157
+ shutil .copyfile (sif , dest )
149
158
self ._install (module_dir , dest , name )
150
159
logger .info ("Module %s was created." % (module_name ))
151
160
@@ -215,9 +224,8 @@ def inspect(self, module_name):
215
224
"""
216
225
Return complete metadata for the user from a container.
217
226
"""
218
- module_dir = os .path .join (self .settings .module_base , module_name )
219
- if not os .path .exists (module_dir ):
220
- logger .exit ("%s does not exist." % module_dir )
227
+ if not os .path .exists (self .container_base ):
228
+ logger .exit ("%s does not exist." % self .container_base )
221
229
222
230
sif = self .get (module_name )
223
231
return self ._container .inspect (sif [0 ])
0 commit comments