From 4413eddc8a343598ccd045aed10ddbf22c8ca12d Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Tue, 22 Sep 2015 17:40:23 +0200 Subject: [PATCH] Pmodules/modulecmd.bash.in: - bugfixes in sub-commands 'use' and 'unuse' --- Pmodules/modulecmd.bash.in | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in index 5e5da85..0b66b7e 100755 --- a/Pmodules/modulecmd.bash.in +++ b/Pmodules/modulecmd.bash.in @@ -1112,6 +1112,10 @@ subcommand_use() { local dirs_to_add=() local subcommand_switches='' while (( $# > 0)); do + if [[ "$1" == "--" ]]; then + shift + continue + fi arg=$1 # if is release # ... @@ -1131,23 +1135,21 @@ subcommand_use() { std::append_path UsedReleases "${arg}" elif [[ ! ${arg} =~ */* ]] && [[ -d ${modulefiles_dir} ]]; then if (( ${HierarchyDepths[$arg]} != 0 )); then - std::die 3 "${CMD} ${0##_}: cannot add group ${arg} to module path" + std::die 3 "${CMD} ${FUNCNAME[0]##*_}: cannot add group ${arg} to module path" fi std::append_path PMODULES_USED_GROUPS "${arg}" dirs_to_add+=( ${modulefiles_dir} ) elif [[ ${arg} =~ ^${PMODULES_ROOT} ]]; then - std::die 3 "${CMD} ${0##_}: illegal directory: ${arg}" + std::die 3 "${CMD} ${FUNCNAME[0]##*_}: illegal directory: ${arg}" elif [[ -d ${arg} ]]; then local normalized_dir=$(cd "${arg}" && pwd) dirs_to_add+=( ${normalized_dir} ) - elif [[ ${arg} =~ "-*" ]]; then - std::die 3 "${CMD} ${0##_}: illegal switch: ${arg}" else - std::die 3 "${CMD} ${0##_}: neither a directory, release or group: ${arg}" + std::die 3 "${CMD} ${FUNCNAME[0]##*_}: neither a directory, release or group: ${arg}" fi shift done - #echo "export PMODULES_USED_GROUPS=${PMODULES_USED_GROUPS}" + declare -g PMODULES_USED_GROUPS="${PMODULES_USED_GROUPS}" export_env PMODULES_USED_GROUPS [[ ${#dirs_to_add[@]} == 0 ]] && return @@ -1158,7 +1160,7 @@ subcommand_use() { } local opts='' - opts=$(pmodules::get_options -- '' "$@") || subcommand_help_unuse + opts=$(pmodules::get_options -o 'ap' -l 'append' -l 'prepend' -- "$@") || subcommand_help_use eval set -- "${opts}" if [[ $# == 1 ]]; then @@ -1173,7 +1175,7 @@ subcommand_use() { # subcommand_unuse() { local opts='' - opts=$(pmodules::get_options -- '' "$@") || subcommand_help_unuse + opts=$(pmodules::get_options -o '' -- "$@") || subcommand_help_unuse eval set -- "${opts}" local dirs_to_remove=() while (( $# > 0)); do @@ -1195,7 +1197,7 @@ subcommand_unuse() { std::remove_path UsedReleases "${arg}" elif [[ ! ${arg} =~ */* ]] && [[ -d ${modulefiles_dir} ]]; then if (( ${HierarchyDepths[$arg]} != 0 )); then - std::die 3 "${CMD} ${0##_}: cannot remove group ${arg} from module path" + std::die 3 "${CMD} ${FUNCNAME[0]##*_}: cannot remove group ${arg} from module path" fi std::remove_path PMODULES_USED_GROUPS "${arg}" dirs_to_remove+=( ${modulefiles_dir} ) @@ -1203,11 +1205,9 @@ subcommand_unuse() { local normalized_dir=$(cd "${arg}" && pwd) dirs_to_remove+=( ${normalized_dir} ) elif [[ ${arg} =~ ^${PMODULES_ROOT} ]]; then - std::die 3 "${CMD} ${0##_}: illegal directory: ${arg}" - elif [[ ${arg} =~ "-*" ]]; then - std::die 3 "${CMD} ${0##*_}: illegal option: ${arg}" + std::die 3 "${CMD} ${FUNCNAME[0]##*_}: illegal directory: ${arg}" else - std::die 3 "${CMD} ${0##*_}: not a directory: ${arg}" + std::die 3 "${CMD} ${FUNCNAME[0]##*_}: not a directory: ${arg}" fi shift done