mirror of
https://github.com/Pmodules/Pmodules.git
synced 2026-06-25 17:13:10 +02:00
modulecmd: add overlay info to output of sub-command 'search'
This commit is contained in:
+27
-19
@@ -945,6 +945,7 @@ get_available_modules() {
|
||||
# implementations.
|
||||
local entries=$(echo *)
|
||||
[[ -n ${entries} ]] || continue
|
||||
local mod='' # module_name/module_version
|
||||
while read mod; do
|
||||
local add='no'
|
||||
if [[ -n "${ol}" ]]; then
|
||||
@@ -980,7 +981,7 @@ get_available_modules() {
|
||||
"${mod}"
|
||||
[[ :${used_rel_stages}: =~ :${rel_stage}: ]] || continue
|
||||
|
||||
mods+=( "${mod}" ${rel_stage} "${dir}/${mod}" )
|
||||
mods+=( "${mod}" ${rel_stage} "${dir}/${mod}" "${ol}" )
|
||||
dict[${mod}]=1
|
||||
done < <(${find} -L ${entries} \
|
||||
\( -type f -o -type l \) \
|
||||
@@ -1073,7 +1074,7 @@ find_module() {
|
||||
"${dir}" \
|
||||
"${mod}"
|
||||
std::upvar $2 "${rel_stage}"
|
||||
[[ :${release}: =~ :${UsedReleaseStages}: ]] && \
|
||||
[[ :${rel_stage}: =~ :${UsedReleaseStages}: ]] && \
|
||||
return 0
|
||||
done
|
||||
done
|
||||
@@ -1144,7 +1145,7 @@ subcommand_avail() {
|
||||
terse_output() {
|
||||
output_header "$1"
|
||||
local -i i=0
|
||||
for (( i=0; i<${#mods[@]}; i+=3 )); do
|
||||
for (( i=0; i<${#mods[@]}; i+=4 )); do
|
||||
local mod=${mods[i]}
|
||||
local rel_stage=${mods[i+1]}
|
||||
case ${rel_stage} in
|
||||
@@ -1162,7 +1163,7 @@ subcommand_avail() {
|
||||
|
||||
#......................................................................
|
||||
machine_output() {
|
||||
for (( i=0; i<${#mods[@]}; i+=3 )); do
|
||||
for (( i=0; i<${#mods[@]}; i+=4 )); do
|
||||
printf "%-20s\t%s\n" "${mods[i]}" "${mods[i+1]}" 1>&2
|
||||
done
|
||||
}
|
||||
@@ -1171,7 +1172,7 @@ subcommand_avail() {
|
||||
# :FIXME: for the time being, this is the same as terse_output!
|
||||
long_output() {
|
||||
output_header "$1"
|
||||
for (( i=0; i<${#mods[@]}; i+=3 )); do
|
||||
for (( i=0; i<${#mods[@]}; i+=4 )); do
|
||||
local mod=${mods[i]}
|
||||
local rel_stage=${mods[i+1]}
|
||||
case ${rel_stage} in
|
||||
@@ -1194,7 +1195,7 @@ subcommand_avail() {
|
||||
local -a available_modules=()
|
||||
local mod=''
|
||||
local -i max_length=1
|
||||
for ((i=0; i<${#mods[@]}; i+=3)); do
|
||||
for ((i=0; i<${#mods[@]}; i+=4)); do
|
||||
if [[ ${verbosity_lvl} == 'verbose' ]]; then
|
||||
local rel_stage=${mods[i+1]}
|
||||
case ${rel_stage} in
|
||||
@@ -2141,7 +2142,7 @@ subcommand_search() {
|
||||
local fmt=''
|
||||
|
||||
print_default() {
|
||||
fmt="%-${max_len_modulename}s %-10s %-12s %-s"
|
||||
fmt="%-${max_len_modulename}s %-10s %-12s %-12s %-s"
|
||||
if [[ ${opt_print_header} == 'yes' ]]; then
|
||||
func_print_header='print_header_default'
|
||||
else
|
||||
@@ -2152,7 +2153,7 @@ subcommand_search() {
|
||||
|
||||
print_header_default() {
|
||||
std::info ''
|
||||
std::info "${fmt}" "Module" "Rel.stage" "Group" "Requires"
|
||||
std::info "${fmt}" "Module" "Rel.stage" "Group" "Overlay" "Requires"
|
||||
std::info '-%.0s' $(seq 1 ${cols})
|
||||
}
|
||||
|
||||
@@ -2165,12 +2166,12 @@ subcommand_search() {
|
||||
std::info "${str}"
|
||||
}
|
||||
if [[ "${opt_wrap}" == 'no' ]]; then
|
||||
local deps="${@:5}"
|
||||
local str=$(printf "${fmt}" "$1" "$2" "$3" "${deps[@]}")
|
||||
local deps="${@:6}"
|
||||
local str=$(printf "${fmt}" "$1" "$2" "$3" "$5" "${deps[@]}")
|
||||
write_line "${str}"
|
||||
else
|
||||
local deps=( "${@:5}" )
|
||||
local str=$(printf "${fmt}" "$1" "$2" "$3" "${deps[0]}")
|
||||
local deps=( "${@:6}" )
|
||||
local str=$(printf "${fmt}" "$1" "$2" "$3" "$5" "${deps[0]}")
|
||||
for (( i = 1; i < ${#deps[@]}; i++ )); do
|
||||
if (( ${#str} + ${#deps[i]} + 1 <= cols )); then
|
||||
str+=" ${deps[i]}"
|
||||
@@ -2184,21 +2185,26 @@ subcommand_search() {
|
||||
}
|
||||
|
||||
print_verbose() {
|
||||
fmt="%-${max_len_modulename}s %-10s %-12s %-s"
|
||||
fmt="%-${max_len_modulename}s %-12s %-14s %-s"
|
||||
func_print_header='print_header_verbose'
|
||||
func_print_line='print_line_verbose'
|
||||
}
|
||||
|
||||
print_header_verbose() {
|
||||
std::info ''
|
||||
std::info "${fmt}" "Module" "Rel.stage" "Group" "Dependencies/Modulefile"
|
||||
std::info '-%.0s' $(seq 1 ${cols})
|
||||
#std::info "${fmt}" "Module" "Rel.stage" "Group" "Overlay" "Dependencies/Modulefile"
|
||||
#std::info '-%.0s' $(seq 1 ${cols})
|
||||
}
|
||||
|
||||
print_line_verbose() {
|
||||
local deps="${@:5}"
|
||||
std::info "${fmt}" "$1" "$2" "$3" "dependencies: ${deps}"
|
||||
std::info "${fmt}" "" "" "" "modulefile: $4"
|
||||
local deps="${@:6}"
|
||||
[[ -z ${deps} ]] && deps="(none)"
|
||||
std::info "$1:"
|
||||
std::info " release stage: $2"
|
||||
std::info " group: $3"
|
||||
std::info " overlay: $5"
|
||||
std::info " modulefile: $4"
|
||||
std::info " dependencies: ${deps}"
|
||||
}
|
||||
|
||||
# print full modulefile names only
|
||||
@@ -2282,10 +2288,11 @@ subcommand_search() {
|
||||
"${opt_use_rel_stages}" \
|
||||
"${modulepath[@]}" \
|
||||
|
||||
for (( i=0; i<${#mods[@]}; i+=3 )); do
|
||||
for (( i=0; i<${#mods[@]}; i+=4 )); do
|
||||
local name=${mods[i]}
|
||||
local rel_stage=${mods[i+1]}
|
||||
local modulefile=${mods[i+2]}
|
||||
local ol=${mods[i+3]}
|
||||
|
||||
if (( ${#name} > max_len_modulename)); then
|
||||
max_len_modulename=${#name}
|
||||
@@ -2313,6 +2320,7 @@ subcommand_search() {
|
||||
fi
|
||||
|
||||
echo ${name} ${rel_stage} ${group} ${modulefile} \
|
||||
${ol} \
|
||||
${deps[@]} >> "${tmpfile}"
|
||||
done
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user