mirror of
https://github.com/Pmodules/Pmodules.git
synced 2026-06-28 10:29:37 +02:00
ba84c7341e
- option to overwrite PMODULE_ROOT added, resolving #17
109 lines
3.3 KiB
Bash
Executable File
109 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
declare BOOTSTRAP_DIR=$(dirname "$0")
|
|
|
|
unset PMODULES_HOME
|
|
unset PMODULES_VERSION
|
|
|
|
source "${BOOTSTRAP_DIR}/Pmodules/libstd.bash"
|
|
|
|
declare -r BOOTSTRAP_DIR=$(std::get_abspath "${BOOTSTRAP_DIR}")
|
|
declare -r SRC_DIR="${BOOTSTRAP_DIR}/Pmodules"
|
|
|
|
std::read_versions "${BOOTSTRAP_DIR}/config/versions.conf"
|
|
|
|
while (( $# > 0 )); do
|
|
case $1 in
|
|
--install-root )
|
|
PMODULES_ROOT="$2"
|
|
shift 1
|
|
;;
|
|
--install-root=* )
|
|
PMODULES_ROOT="${1#*=}"
|
|
;;
|
|
-* )
|
|
echo "Unknown option: $1" 1>&2
|
|
exit 1
|
|
;;
|
|
* )
|
|
echo "Invalid argument: $1" 1>&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift 1
|
|
done
|
|
|
|
if [[ ! -d "${PMODULES_ROOT}" ]]; then
|
|
read -p "The requested root directory does not exist. Create it? [y|N] " -n 1 ans
|
|
case ${ans} in
|
|
y | Y )
|
|
mkdir -p "${PMODULES_ROOT}"
|
|
;;
|
|
* )
|
|
echo "Aborting ..." 1>&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
source "${BOOTSTRAP_DIR}/config/environment.bash"
|
|
|
|
###
|
|
#
|
|
# begin installation
|
|
#
|
|
echo "Installing to ${PMODULES_HOME} ..."
|
|
sed_cmd="s:@PMODULES_HOME@:${PMODULES_HOME}:g;"
|
|
sed_cmd+="s:@PMODULES_VERSION@:${PMODULES_VERSION}:g;"
|
|
sed_cmd+="s:@MODULES_VERSION@:${MODULES_VERSION}:g;"
|
|
sed_cmd+="s:@PMODULES_DISTFILESDIR@:${PMODULES_DISTFILESDIR}:g;"
|
|
sed_cmd+="s:@PMODULES_TMPDIR@:${PMODULES_TMPDIR}:g;"
|
|
|
|
sed "${sed_cmd}" "${SRC_DIR}/modulecmd.bash.in" > "${SRC_DIR}/modulecmd.bash"
|
|
sed "${sed_cmd}" "${SRC_DIR}/modulecmd.tcl.in" > "${SRC_DIR}/modulecmd.tcl"
|
|
sed "${sed_cmd}" "${SRC_DIR}/modmanage.bash.in" > "${SRC_DIR}/modmanage.bash"
|
|
sed "${sed_cmd}" "${SRC_DIR}/environment.bash.in" > "${SRC_DIR}/environment.bash"
|
|
|
|
install -d -m 0755 "${PMODULES_HOME}/bin"
|
|
install -d -m 0755 "${PMODULES_HOME}/config"
|
|
install -d -m 0755 "${PMODULES_HOME}/init"
|
|
install -d -m 0755 "${PMODULES_HOME}/lib"
|
|
|
|
install -m 0755 "${SRC_DIR}/modulecmd" "${PMODULES_HOME}/bin"
|
|
install -m 0755 "${SRC_DIR}/modulecmd.bash" "${PMODULES_HOME}/libexec"
|
|
install -m 0755 "${SRC_DIR}/modulecmd.tcl" "${PMODULES_HOME}/libexec"
|
|
install -m 0755 "${SRC_DIR}/modmanage" "${PMODULES_HOME}/bin"
|
|
install -m 0755 "${SRC_DIR}/modmanage.bash" "${PMODULES_HOME}/libexec"
|
|
install -m 0755 "${SRC_DIR}/modbuild" "${PMODULES_HOME}/bin"
|
|
|
|
install -m 0755 "${SRC_DIR}/environment.bash" "${PMODULES_HOME}/config/environment.bash.sample"
|
|
install -m 0755 "${SRC_DIR}/profile.bash" "${PMODULES_HOME}/config/profile.bash.sample"
|
|
|
|
if [[ ! -e "${PMODULES_ROOT}/${PMODULES_CONFIG_DIR}" ]]; then
|
|
mkdir -p "${PMODULES_ROOT}/${PMODULES_CONFIG_DIR}"
|
|
fi
|
|
|
|
if [[ ! -e "${PMODULES_ROOT}/${PMODULES_CONFIG_DIR}/environment.bash" ]]; then
|
|
install -m 0755 "${SRC_DIR}/environment.bash" "${PMODULES_ROOT}/${PMODULES_CONFIG_DIR}/environment.bash"
|
|
fi
|
|
|
|
if [[ ! -e "${PMODULES_ROOT}/${PMODULES_CONFIG_DIR}/profile.bash" ]]; then
|
|
install -m 0755 "${SRC_DIR}/profile.bash" "${PMODULES_ROOT}/${PMODULES_CONFIG_DIR}/profile.bash"
|
|
fi
|
|
|
|
mkdir -p "${PMODULES_ROOT}/Tools/modulefiles"
|
|
mkdir -p "${PMODULES_ROOT}/Libraries/modulefiles"
|
|
|
|
install -m 0644 "${SRC_DIR}/bash" "${PMODULES_HOME}/init"
|
|
install -m 0644 "${SRC_DIR}/bash_completion" "${PMODULES_HOME}/init"
|
|
|
|
install -m 0644 "${SRC_DIR}/libpmodules.bash" "${PMODULES_HOME}/lib"
|
|
install -m 0644 "${SRC_DIR}/libpbuild.bash" "${PMODULES_HOME}/lib"
|
|
install -m 0644 "${SRC_DIR}/libstd.bash" "${PMODULES_HOME}/lib"
|
|
install -m 0755 -d "${PMODULES_HOME}/lib/Pmodules"
|
|
install -m 0644 "${SRC_DIR}/libmodules.tcl" "${PMODULES_HOME}/lib/Pmodules"
|
|
|
|
{
|
|
cd "${PMODULES_HOME}/lib/Pmodules"
|
|
"${BOOTSTRAP_DIR}/mkindex.tcl"
|
|
}
|