From f0f6e6bd0a47621b16390cc513c5d3b28a22c021 Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Thu, 9 Dec 2021 17:47:16 +0100 Subject: [PATCH] modulecmd: simpler test whether a overlay can be loaded or unloaded --- Pmodules/modulecmd.bash.in | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in index 87297b3..83d23eb 100644 --- a/Pmodules/modulecmd.bash.in +++ b/Pmodules/modulecmd.bash.in @@ -1406,17 +1406,13 @@ subcommand_use() { use () { use_overlay() { local ol_name_or_dir="$1" - if [[ -n ${LOADEDMODULES} ]]; then - if [[ $LOADEDMODULES == *:* ]] \ - || [[ $LOADEDMODULES != Pmodules/* ]]; then - std::error "%s %s: %s" \ - "${CMD}" "${subcommand}" \ - "overlay cannot be added since some modules are already loaded!" - std::die 3 "%s %s: %s -- %s" \ - "${CMD}" "${subcommand}" \ - "overlay failed" \ - "${ol_name_or_dir}" - fi + + if [[ -n "${LOADEDMODULES}" ]] && \ + [[ "${LOADEDMODULES}" != Pmodules/+([.0-9rc]) ]]; then + std::die 3 "%s %s: %s %s" \ + "${CMD}" "${subcommand}" \ + "overlay cannot be added since some" \ + "modules are already loaded!" fi local ol_dir='' @@ -1616,16 +1612,13 @@ subcommand_unuse() { #.............................................................. unuse_overlay() { local ol_name_or_dir="$1" - if [[ -n ${LOADEDMODULES} ]]; then - if [[ $LOADEDMODULES == *:* ]] || [[ $LOADEDMODULES != Pmodules/* ]]; then - std::error "%s %s: %s" \ - "${CMD}" "${subcommand}" \ - "overlay cannot be removed since some modules are still loaded!" - std::die 3 "%s %s: %s -- %s" \ - "${CMD}" "${subcommand}" \ - "overlay failed" \ - "${ol_name_or_dir}" - fi + + if [[ -n "${LOADEDMODULES}" ]] && \ + [[ "${LOADEDMODULES}" != Pmodules/+([.0-9rc]) ]]; then + std::die 3 "%s %s: %s %s" \ + "${CMD}" "${subcommand}" \ + "overlay cannot be removed since" \ + "some modules are still loaded!" fi local ol_dir=''