Newer
Older
# !/bin/bash
# load config
. ../CONFIG
IMAGE=$1
VERSION=$2
OMPI=$3
# 1 ... classic, 2 ... gpu, 3 ... mic
VERSION2=$VERSION
if [ "$VERSION" == "6" ]; then
PATH="./centos/6"
elif [ "$VERSION" == "7" ]; then
PATH="./centos/7"
elif [ "$VERSION" == "8" ]; then
PATH="./centos/8"
elif [ "$IMAGE" == "Rocky" ]; then
if [ "$VERSION" == "8" ]; then
PATH="./rocky/8"
elif [ "$VERSION" == "9" ]; then
PATH="./rocky/9"
else
echo "Unsupported OS Version"
exit 1
fi
elif [ "$IMAGE" == "Debian" ]; then
PATH="./ubuntu/template"
elif [ "$IMAGE" == "Fedora" ]; then
PATH="./ubuntu/template"
else
echo "Unsupported OS"
exit 1
fi
/bin/cat "$PATH" > "$NAME"
if [ ! -z $OMPI ]; then
echo "if not isloaded(\"OpenMPI/3.1.4-GCC-8.3.0-2.32\") then" >> "$NAME"
echo " load(\"OpenMPI/3.1.4-GCC-8.3.0-2.32\")" >> "$NAME"
echo "end" >> "$NAME"
echo "" >> "$NAME"
fi
echo "if not isloaded(\"apptainer\") then" >> "$NAME"
echo " load(\"apptainer\")" >> "$NAME"
echo "if not isloaded(\"apptainer-wrappers\") then" >> "$NAME"
echo " load(\"apptainer-wrappers\")" >> "$NAME"
echo "" >> "$NAME"
echo "set_alias(\"image-update\",\". image-update\")" >> "$NAME"
echo "setenv(\"IMAGE_ROOT\", \"/apps/all/OS/$IMAGE/$VERSION2\")" >> "$NAME"
echo "setenv(\"IMAGE_OS\", \"$IMAGE\")" >> "$NAME"
echo "setenv(\"IMAGE_VERSION\", \"$VERSION2\")" >> "$NAME"
echo "setenv(\"IMAGE_PATH_LOCAL\", \"\")" >> "$NAME"
echo "" >> "$NAME"
echo "execute {cmd=\"source /apps/all/OS/bin/image-load\",modeA={\"load\"}}" >> "$NAME"
if [ ! -d "$MODULEFILE_PATH/all/$IMAGE" ]; then
/bin/mkdir -p "$MODULEFILE_PATH/all/$IMAGE" || exit 1
fi
if [ ! -f "$MODULEFILE_PATH/all/$IMAGE/$NAME" ]; then
/bin/mv ./$NAME $MODULEFILE_PATH/all/$IMAGE/$NAME || exit 1
/bin/chown $USER_IMAGE:$USER_IMAGE $MODULEFILE_PATH/all/$IMAGE/$NAME && /bin/chmod 0664 $MODULEFILE_PATH/all/$IMAGE/$NAME || exit 1
else
MD5SUM_orig=`/usr/bin/md5sum /apps/modules/all/$IMAGE/$NAME`
MD5SUM_new=`/usr/bin/md5sum ./$NAME`
if [ ! "MD5SUM_orig" == "MD5SUM_new" ]; then
/bin/mv ./$NAME $MODULEFILE_PATH/all/$IMAGE/$NAME || exit 1
/bin/chown $USER_IMAGE:$USER_IMAGE $MODULEFILE_PATH/all/$IMAGE/$NAME && /bin/chmod 0664 $MODULEFILE_PATH/all/$IMAGE/$NAME || exit 1
fi
fi
if [ ! -d "$MODULEFILE_PATH/OS/$IMAGE" ]; then
/bin/mkdir -p $MODULEFILE_PATH/OS/$IMAGE || exit 1
fi
if [ ! -f "$MODULEFILE_PATH/OS/$IMAGE/$NAME" ]; then
/bin/ln -s $MODULEFILE_PATH/all/$IMAGE/$NAME $MODULEFILE_PATH/OS/$IMAGE/$NAME || exit 1
/bin/chown easybuild: $MODULEFILE_PATH/OS/$IMAGE/$NAME