Newer
Older
#!/bin/bash
set -e
software=$1
if [ -z $1 ]; then
echo 'please specify target software'
echo 'input can be either '
echo 'listdeps <name>'
echo 'OR'
echo 'listdeps <name> <version>'
exit 1
fi
version=$2
version=( $version )
lche0021
committed
else
version=( $(ls /usr/local/Modules/modulefiles/$software) )
fi
mkdir -p $software
for ver in ${version[@]}; do touch $software/$ver;done
for i in $(ls -d /usr/local/*/); do
name=$(basename $i)
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