#!/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 if [ -z $version ]; then version=( $(ls /usr/local/Modules/modulefiles/$software) ) else version=( $version ) fi mkdir -p $software for i 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 ]; then echo $name >> $software/$load_ver fi done set +e