ngc-container-environment-modules icon indicating copy to clipboard operation
ngc-container-environment-modules copied to clipboard

Make all modules export a variable with their image name

Open lgorenstein opened this issue 4 years ago • 2 comments

Something it's very convenient to do a quick singularity shell or singularity exec with the container - which requires to know where the image is. Having the module define an environment variable would make this easier. Something along the lines of

pushenv("NGC_IMAGE", image)

would make it a lot easier to say singularity shell --nv $NGC_IMAGE (compared to a "which myprogram-followed-by-copy-pasting-of-the-container-path-from-the-alias").

Granted, this would get a little more complicated when image = uri (name will be different when singularity pulls), but it can be handled too, right?

lgorenstein avatar Mar 26 '21 23:03 lgorenstein

How would this handle having multiple modules loaded at the same time? Many will conflict with each other, but not all.

samcmill avatar Mar 29 '21 16:03 samcmill

Good point. Something like BASH_SOURCE or BASH_FUNC arrays could be handy, but not all shells support arrays.

So we could take two approaches with this: either "the variable always holds image name for last loaded container module", or "the variable is PATH-style with colon-separated image names as they are loaded".

lgorenstein avatar Mar 29 '21 16:03 lgorenstein