Skip to content
Snippets Groups Projects
listdeps 896 B
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
lche0021's avatar
lche0021 committed
if [ ! -z ${version} ]; then
else 
    version=( $(ls /usr/local/Modules/modulefiles/$software) )
lche0021's avatar
lche0021 committed
mkdir -p $software
for ver in ${version[@]}; do touch $software/$ver;done
lche0021's avatar
lche0021 committed

for i in $(ls -d /usr/local/*/); do
    name=$(basename $i)
lche0021's avatar
lche0021 committed
    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