Skip to content
Snippets Groups Projects

Fix listdeps

Merged Luhan Cheng requested to merge fix_listdeps into master
1 file
+ 15
7
Compare changes
  • Side-by-side
  • Inline
+ 15
7
#!/bin/bash
# This script does not detect implicit dependency
# For example, if A -> B -> openmpi/1.10.7-mlx, only module B will be detected
set -e
software=$1
if [ -z $1 ]; then
@@ -10,20 +13,25 @@ if [ -z $1 ]; then
exit 1
fi
version=$2
if [ ${version+_} ]; then
if [ ! -z ${version} ]; then
version=( $version )
else
version=( $(ls /usr/local/Modules/modulefiles/$software) )
fi
mkdir -p $software
for ver in ${version[@]}; do touch $software/$ver;done
for ver in $version; do touch $software/$ver; done
for i in $(ls -d /usr/local/*/); do
name=$(basename $i)
load_ver=$(module show $name 2>&1 | sed -n "s/module.*load\ ${software}\/\(.*\)/\1/p")
if [ ! -z $load_ver ] && [ -f $software/$load_ver ]; then
echo $name >> $software/$load_ver
fi
if [[ -r "/usr/local/Modules/modulefiles/$name" ]]; then
vers=$(ls /usr/local/Modules/modulefiles/$name)
fi
for ver in ${vers[@]}; do
load_ver=$(module show $name/$ver 2>&1 | sed -n "s/module.*load\ ${software}\/\(.*\)/\1/p")
if [ ! -z $load_ver ] && [ -f $software/$load_ver ]; then
echo $name/$ver >> $software/$load_ver
fi
done
done
set +e
Loading