From 5edcec45446ffd0ea7e905bdffdddd3fab38a2c3 Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Mon, 7 Jun 2021 15:27:08 +0200 Subject: [PATCH] modulecmd: sort module names version aware - call sort with option --version-sort in getting available modules and search cmd --- Pmodules/modulecmd.bash.in | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in index e0a20b3..57bd58e 100644 --- a/Pmodules/modulecmd.bash.in +++ b/Pmodules/modulecmd.bash.in @@ -821,7 +821,10 @@ get_available_modules() { if [[ :${used_rel_stages}: =~ :${rel_stage}: ]]; then mods+=( "${mod}" ${rel_stage} "${dir}/${mod}") fi - done < <(${find} -L * \( -type f -o -type l \) -not -name ".*" -ipath "${module}*") + done < <(${find} -L * \ + \( -type f -o -type l \) -not -name ".*" \ + -ipath "${module}*" \ + | ${sort} --version-sort) } done std::upvar ${var} "${mods[@]}" @@ -948,8 +951,6 @@ subcommand_avail() { (( n > max_length )) && (( max_length=n )) available_modules+=("${mod}") done - IFS=$'\n' available_modules=($(sort <<<"${available_modules[*]}")) - unset IFS local -i span=$(( max_length / 16 + 1 )) # compute column size local -i colsize=$(( span * 16 )) # as multiple of 16 local -i column=$cols # force a line-break @@ -1787,7 +1788,7 @@ subcommand_search() { ${func_print_header} while read -a toks; do ${func_print_line} "${toks[@]}" - done < <("${sort}" -k 1,1 -k 4,4 -k 5,5 "${tmpfile}" | \ + done < <("${sort}" --version-sort -k 1,1 -k 4,4 -k 5,5 "${tmpfile}" | \ ${awk} "${with_modules}") }