From d9a1771838f8c1da82b2ae1c362c57240be4c9cd Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Thu, 30 Jun 2022 18:23:20 +0200 Subject: [PATCH] modulecmd/libpmodules: bugfixes in scaning group depths --- Pmodules/libpmodules.bash.in | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Pmodules/libpmodules.bash.in b/Pmodules/libpmodules.bash.in index ea15fbc..f394df5 100644 --- a/Pmodules/libpmodules.bash.in +++ b/Pmodules/libpmodules.bash.in @@ -43,7 +43,7 @@ compute_group_depth () { test -d "${dir}" || return 1 local group=${dir%/*} local group=${group##*/} - local -i result=$(${find} "${dir}" -depth \( -type f -o -type l \) \ + result=$(${find} "${dir}" -depth \( -type f -o -type l \) \ -printf "%d" -quit 2>/dev/null) (( result-=2 )) # if a group doesn't contain a modulefile, depth is negativ @@ -59,12 +59,14 @@ compute_group_depth () { # scan_groups () { local ol + local depth for ol in "$@"; do local mod_root="${OverlayInfo[${ol}:mod_root]}" - local -i depth local dir for dir in ${mod_root}/*/${PMODULES_MODULEFILES_DIR}; do - if [[ -n "${GroupDepths[${group}]}" ]]; then + local group="${dir%/*}" + group="${group##*/}" + if [[ ! -v GroupDepths[${group}] ]]; then compute_group_depth depth "${dir}" GroupDepths[$group]=${depth} fi