sit/check_modules.sh
Christoph Niethammer 983d9b5708 Major improvements to the module load check script.
* Fixes problems with alias names of modules
* Increased performance
* Summary of failed modules
2024-03-28 02:43:56 +01:00

41 lines
1.1 KiB
Bash
Executable file

#!/bin/bash -l
#
# Christoph Niethammer <niethammer@hlrs.de>, (c) 2012
#
# TODO:
# - check for proper module unloading
#
failed_modules=()
TMP=${TMP:=/tmp}
logfile="check_modules.log"
module_load_logfile="$TMP/.module_load.log"
echo "Module environment check, $(date)" | tee $logfile
for m in $(module av -t 2>&1); do
if [[ $m =~ ^[A-Za-z] ]]; then
m=$(echo $m | sed -e 's/(.*)//')
echo -n "Checking $m ... " | tee -a $logfile
module load $m > $module_load_logfile 2>&1
# check if module was loaded
if module li 2>&1 | grep $m > /dev/null; then
echo "success" | tee -a $logfile
else
echo "failed" | tee -a $logfile
failed_modules=(${failed_modules[@]} $m)
cat .module_load.log | tee -a $logfile
fi
module purge 2>/dev/null
rm -f $module_load_logfile
fi
done
echo "----------------------------------------"
echo "Summary of failed modules:"
echo "----------------------------------------"
for m in ${failed_modules[@]}; do
echo "$m"
done
echo "----------------------------------------"