diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in index 603d294..091a363 100644 --- a/Pmodules/modulecmd.bash.in +++ b/Pmodules/modulecmd.bash.in @@ -1306,9 +1306,15 @@ get_overlay_info(){ for config_file in "${config_files[@]}"; do [[ -r "${config_file}" ]] || continue local toks=() + local -i lino=0 while read -a toks; do + (( lino++ )) [[ -n "${toks[0]}" ]] || continue [[ ${toks[0]} == \#* ]] && continue + (( ${#toks[@]} < 2 )) && \ + std::warn "%s - %s" \ + "Skipping malformed line ${lino} in configuration file" \ + "${config_file}" local _name="${toks[0]%:*}" if [[ "${toks[0]%:*}" == "${name_or_dir}" ]] \ || [[ "${toks[1]}" == "${name_or_dir}" ]]; then @@ -1324,7 +1330,11 @@ get_overlay_info(){ fi [[ -n "$2" ]] && std::upvar "$2" "${_type}" [[ -n "$3" ]] && std::upvar "$3" "${toks[1]}" - [[ -n "$4" ]] && std::upvar "$4" "${toks[2]}" + if [[ -n "$4" ]]; then + std::upvar "$4" "${toks[2]}" + else + std::upvar "$4" "${toks[1]}" + fi return 0 fi done < "${config_file}"