Skip to content

Commit 9fe985a

Browse files
committed
Improve install_eb_dep.sh
- Use correct paths (stray $HOME instead of $PREFIX) - Use bash parameter expansion instead of `echo | sed` - Correct quoting - Cleanup archive and folder - Reset -e
1 parent be2e192 commit 9fe985a

File tree

1 file changed

+40
-36
lines changed

1 file changed

+40
-36
lines changed
Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,81 @@
11
#!/bin/bash
22

3-
set -e
4-
53
if [ $# -ne 2 ]; then
64
echo "Usage: $0 <name>-<version> <prefix>"
75
exit 1
86
fi
9-
PKG=$1
10-
PREFIX=$2
117

12-
PKG_NAME=`echo $PKG | sed 's/-[^-]*$//g'`
13-
PKG_VERSION=`echo $PKG | sed 's/.*-//g'`
8+
set -eu
9+
10+
PKG="$1"
11+
PREFIX="$2"
12+
13+
PKG_NAME="${PKG%-*}"
14+
PKG_VERSION="${PKG##*-}"
1415

1516
CONFIG_OPTIONS=
1617
PRECONFIG_CMD=
1718

18-
if [ x$PKG_NAME == 'xmodules' ] && [ x$PKG_VERSION == 'x3.2.10' ]; then
19+
if [ "$PKG_NAME" == 'modules' ] && [ "$PKG_VERSION" == '3.2.10' ]; then
1920
PKG_URL="http://prdownloads.sourceforge.net/modules/${PKG}.tar.gz"
2021
BACKUP_PKG_URL="https://easybuilders.github.io/easybuild/files/${PKG}.tar.gz"
21-
export PATH=$PREFIX/Modules/$PKG_VERSION/bin:$PATH
22-
export MOD_INIT=$HOME/Modules/$PKG_VERSION/init/bash
22+
export PATH="$PREFIX/Modules/$PKG_VERSION/bin:$PATH"
23+
export MOD_INIT="$PREFIX/Modules/$PKG_VERSION/init/bash"
2324

24-
elif [ x$PKG_NAME == 'xmodules' ]; then
25+
elif [ "$PKG_NAME" == 'modules' ]; then
2526
PKG_URL="http://prdownloads.sourceforge.net/modules/${PKG}.tar.gz"
26-
export PATH=$PREFIX/bin:$PATH
27-
export MOD_INIT=$HOME/init/bash
27+
export PATH="$PREFIX/bin:$PATH"
28+
export MOD_INIT="$PREFIX/init/bash"
2829

29-
elif [ x$PKG_NAME == 'xlua' ]; then
30+
elif [ "$PKG_NAME" == 'lua' ]; then
3031
PKG_URL="http://downloads.sourceforge.net/project/lmod/${PKG}.tar.gz"
3132
BACKUP_PKG_URL="https://easybuilders.github.io/easybuild/files/${PKG}.tar.gz"
3233
PRECONFIG_CMD="make clean"
3334
CONFIG_OPTIONS='--with-static=yes'
34-
export PATH=$PWD/$PKG:$PREFIX/bin:$PATH
35+
export PATH="$PWD/$PKG:$PREFIX/bin:$PATH"
3536

36-
elif [ x$PKG_NAME == 'xLmod' ]; then
37+
elif [ "$PKG_NAME" == 'Lmod' ]; then
3738
PKG_URL="https://github.com/TACC/Lmod/archive/${PKG_VERSION}.tar.gz"
38-
export PATH=$PREFIX/lmod/$PKG_VERSION/libexec:$PATH
39-
export MOD_INIT=$HOME/lmod/$PKG_VERSION/init/bash
39+
export PATH="$PREFIX/lmod/$PKG_VERSION/libexec:$PATH"
40+
export MOD_INIT="$PREFIX/lmod/$PKG_VERSION/init/bash"
4041

41-
elif [ x$PKG_NAME == 'xmodules-tcl' ]; then
42+
elif [ "$PKG_NAME" == 'modules-tcl' ]; then
4243
# obtain tarball from upstream via http://modules.cvs.sourceforge.net/viewvc/modules/modules/?view=tar&revision=1.147
4344
PKG_URL="https://easybuilders.github.io/easybuild/files/modules-tcl-${PKG_VERSION}.tar.gz"
44-
export MODULESHOME=$PREFIX/$PKG/tcl # required by init/bash source script
45-
export PATH=$MODULESHOME:$PATH
46-
export MOD_INIT=$MODULESHOME/init/bash.in
45+
export MODULESHOME="$PREFIX/$PKG/tcl" # required by init/bash source script
46+
export PATH="$MODULESHOME:$PATH"
47+
export MOD_INIT="$MODULESHOME/init/bash.in"
4748
else
4849
echo "ERROR: Unknown package name '$PKG_NAME'"
4950
exit 2
5051
fi
5152

5253
echo "Installing ${PKG} @ ${PREFIX}..."
53-
mkdir -p ${PREFIX}
54-
set +e
55-
wget ${PKG_URL} && tar xfz *${PKG_VERSION}.tar.gz
56-
if [ $? -ne 0 ] && [ ! -z $BACKUP_PKG_URL ]; then
57-
rm -f *${PKG_VERSION}.tar.gz
58-
wget ${BACKUP_PKG_URL} && tar xfz *${PKG_VERSION}.tar.gz
54+
mkdir -p "${PREFIX}"
55+
if ! wget "${PKG_URL}" && [ -n "$BACKUP_PKG_URL" ]; then
56+
rm -f ./*"${PKG_VERSION}".tar.gz
57+
wget "${BACKUP_PKG_URL}"
5958
fi
60-
set -e
59+
60+
tar xfz ./*"${PKG_VERSION}".tar.gz
61+
rm ./*"${PKG_VERSION}".tar.gz
6162

6263
# environment-modules needs a patch to work with Tcl8.6
63-
if [ x$PKG_NAME == 'xmodules' ] && [ x$PKG_VERSION == 'x3.2.10' ]; then
64+
if [ "$PKG_NAME" == 'modules' ] && [ "$PKG_VERSION" == '3.2.10' ]; then
6465
wget -O 'modules-tcl8.6.patch' 'https://easybuilders.github.io/easybuild/files/modules-3.2.10-tcl8.6.patch'
65-
patch ${PKG}/cmdModule.c modules-tcl8.6.patch
66+
patch "${PKG}/cmdModule.c" modules-tcl8.6.patch
6667
fi
6768

68-
if [ x$PKG_NAME == 'xmodules-tcl' ]; then
69-
mv modules $PREFIX/${PKG}
69+
if [ "$PKG_NAME" == 'modules-tcl' ]; then
70+
mv modules "$PREFIX/${PKG}"
7071
else
71-
cd ${PKG}
72-
if [[ ! -z $PRECONFIG_CMD ]]; then
73-
eval ${PRECONFIG_CMD}
72+
cd "${PKG}"
73+
if [[ -n "$PRECONFIG_CMD" ]]; then
74+
eval "${PRECONFIG_CMD}"
7475
fi
75-
./configure $CONFIG_OPTIONS --prefix=$PREFIX && make && make install
76+
./configure $CONFIG_OPTIONS --prefix="$PREFIX" && make && make install
7677
cd - > /dev/null
78+
rm -r "${PKG}"
7779
fi
80+
81+
set +eu

0 commit comments

Comments
 (0)