diff --git a/Pmodules/libmodules.tcl b/Pmodules/libmodules.tcl index 38f4b55..e898051 100644 --- a/Pmodules/libmodules.tcl +++ b/Pmodules/libmodules.tcl @@ -68,21 +68,27 @@ proc module-addgroup { group } { debug "no orphan modules to unload" } debug "mode=remove: $env(MODULEPATH)" - remove-path MODULEPATH [file join \ - $::PmodulesRoot \ - $group \ - $::PmodulesModulfilesDir \ - {*}$::variant] + set dir [file join \ + $::PmodulesRoot \ + $group \ + $::PmodulesModulfilesDir \ + {*}$::variant] + debug "mode=remove: dir=$dir" + remove-path MODULEPATH $dir debug "mode=remove: $env(UsedGroups)" remove-path UsedGroups $group + debug "mode=remove: $env(UsedGroups)" } if { [module-info mode switch2] } { debug "mode=switch2" - append-path MODULEPATH [file join \ - $::PmodulesRoot \ - $group \ - $::PmodulesModulfilesDir \ - [module-info name]] + set dir [file join \ + $::PmodulesRoot \ + $group \ + $::PmodulesModulfilesDir \ + [module-info name]] + if { [file isdirectory $dir] } { + append-path MODULEPATH $dir + } append-path UsedGroups ${group} } } diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in index a52ba79..2b9cef5 100755 --- a/Pmodules/modulecmd.bash.in +++ b/Pmodules/modulecmd.bash.in @@ -670,8 +670,7 @@ subcommand_load() { current_modulefile="${array[0]}" prefix="${array[1]}" test -n "${current_modulefile}" || return 1 - get_release release "${current_modulefile}" - [[ :${UsedReleases}: =~ ${release} ]] + get_release release "${current_modulefile}" "${UsedReleases}" } #