mirror of
https://github.com/Pmodules/Pmodules.git
synced 2026-06-27 18:13:08 +02:00
modmanage: don't use PATH to find commands
This commit is contained in:
+42
-24
@@ -6,17 +6,37 @@ unset CDPATH
|
||||
# used for some output only
|
||||
declare -r CMD='modmanage'
|
||||
|
||||
declare -r mydir=$(cd $(dirname "$0") && pwd)
|
||||
declare -r prefix=$(dirname "${mydir}")
|
||||
dirname=$(PATH=/bin:/usr/bin which dirname)
|
||||
declare -r dirname
|
||||
uname=$(PATH=/bin:/usr/bin which uname)
|
||||
declare -r uname
|
||||
mkdir=$(PATH=/bin:/usr/bin which mkdir)
|
||||
declare -r mkdir
|
||||
rsync=$(PATH=/bin:/usr/bin which rsync)
|
||||
declare -r rsync
|
||||
rm=$(PATH=/bin:/usr/bin /usr/bin/which rm)
|
||||
declare -r rm
|
||||
|
||||
if [[ $(${uname} -s) == 'Darwin' ]]; then
|
||||
declare -r getopt="${libexecdir}/getopt"
|
||||
declare -r find="${libexecdir}/find"
|
||||
else
|
||||
getopt=$(PATH=/bin:/usr/bin /usr/bin/which getopt)
|
||||
declare -r getopt
|
||||
find=$(PATH=/bin:/usr/bin /usr/bin/which find)
|
||||
declare -r find
|
||||
fi
|
||||
|
||||
|
||||
declare -r mydir=$(cd $(${dirname} "$0") && pwd)
|
||||
declare -r prefix=$(${dirname} "${mydir}")
|
||||
declare -r bindir="${prefix}/bin"
|
||||
declare -r sbindir="${prefix}/sbin"
|
||||
declare -r libdir="${prefix}/lib"
|
||||
declare -r libexecdir="${prefix}/libexec"
|
||||
|
||||
source "${libdir}/libstd.bash"
|
||||
source "${libdir}/libpmodules.bash"
|
||||
|
||||
PATH="${sbindir}:${bindir}:${PATH}"
|
||||
source "${libdir}/libstd.bash"
|
||||
|
||||
|
||||
_exit () {
|
||||
std::die 1 "Interrupted..."
|
||||
@@ -205,7 +225,7 @@ get_module_prefix() {
|
||||
# $1: relative module file path
|
||||
#
|
||||
get_releasefile_name() {
|
||||
echo "$(dirname "$1")/.release-$(basename "$1")"
|
||||
echo "$(${dirname} "$1")/.release-$(basename "$1")"
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
@@ -234,8 +254,8 @@ sync_module() {
|
||||
|
||||
# install/update module
|
||||
if [[ ! -d "${target_prefix}/${rel_module_prefix}" ]] || [[ "${force}" == 'yes' ]]; then
|
||||
$DRY mkdir -p "${target_prefix}/${rel_module_prefix}" || return $?
|
||||
$DRY rsync --links --perms --recursive --delete \
|
||||
$DRY ${mkdir} -p "${target_prefix}/${rel_module_prefix}" || return $?
|
||||
$DRY ${rsync} --links --perms --recursive --delete \
|
||||
"${src_prefix}/${rel_module_prefix}/" \
|
||||
"${target_prefix}/${rel_module_prefix}/" || exit $?
|
||||
fi
|
||||
@@ -246,8 +266,8 @@ sync_module() {
|
||||
|
||||
# create target directory for module- and release-file
|
||||
if [[ -e "${src_modulefile}" ]] || [[ -e "${src_releasefile}" ]]; then
|
||||
local dir=$( dirname "${target_modulefile}" )
|
||||
$DRY mkdir -p "${dir}" || return $?
|
||||
local dir=$( ${dirname} "${target_modulefile}" )
|
||||
$DRY ${mkdir} -p "${dir}" || return $?
|
||||
fi
|
||||
|
||||
# copy modulefile template
|
||||
@@ -260,20 +280,20 @@ sync_module() {
|
||||
local -r src_template="${src_prefix}/${template}"
|
||||
local -r target_template="${target_prefix}/${template}"
|
||||
if [[ -e "${src_template}" ]]; then
|
||||
$DRY mkdir -p "${target_template}"
|
||||
$DRY rsync --links --perms --recursive \
|
||||
$DRY ${mkdir} -p "${target_template}"
|
||||
$DRY ${rsync} --links --perms --recursive \
|
||||
"${src_template}" "${target_template}" || exit $?
|
||||
fi
|
||||
|
||||
# copy modulefile
|
||||
if [[ -e "${src_modulefile}" ]]; then
|
||||
$DRY rsync --links --perms --recursive \
|
||||
$DRY ${rsync} --links --perms --recursive \
|
||||
"${src_modulefile}" "${target_modulefile}" || exit $?
|
||||
fi
|
||||
|
||||
# copy release-file
|
||||
if [[ -e "${src_releasefile}" ]]; then
|
||||
$DRY rsync --links --perms --recursive \
|
||||
$DRY ${rsync} --links --perms --recursive \
|
||||
"${src_releasefile}" "${target_releasefile}" || exit $?
|
||||
fi
|
||||
|
||||
@@ -290,9 +310,8 @@ sync_module() {
|
||||
sync_config() {
|
||||
src="$1/${PMODULES_CONFIG_DIR}/"
|
||||
dst="$2/${PMODULES_CONFIG_DIR}/"
|
||||
$DRY rsync --recursive --links --perms --delete \
|
||||
$DRY ${rsync} --recursive --links --perms --delete \
|
||||
"${src}" "${dst}" 2>/dev/null || return $?
|
||||
sed -i.bak "s/PMODULES_VERSION=\(.*\)/PMODULES_VERSION=${PMODULES_VERSION}/" "${dst}/environment.bash"
|
||||
echo
|
||||
}
|
||||
|
||||
@@ -416,7 +435,7 @@ environment at '${PMODULES_ROOT}'
|
||||
fi
|
||||
force='yes'
|
||||
echo "Creating target directory '${target_prefix}'..."
|
||||
$DRY mkdir -p "${target_prefix}" || \
|
||||
$DRY ${mkdir} -p "${target_prefix}" || \
|
||||
std::die 1 "Error: make directory failed!"
|
||||
echo
|
||||
|
||||
@@ -430,13 +449,12 @@ environment at '${PMODULES_ROOT}'
|
||||
"${src_prefix}" \
|
||||
"${target_prefix}" || \
|
||||
std::die 1 "Error: sync Pmodules failed!"
|
||||
mkdir -p "${target_prefix}/Tools/${PMODULES_MODULEFILES_DIR}"
|
||||
echo
|
||||
|
||||
dst="${target_prefix}/${PMODULES_CONFIG_DIR}/environment.bash"
|
||||
echo "Adding installation source '${src_prefix}' to '${dst}'..."
|
||||
sed -i.bak '/PMODULES_INSTALL_SOURCE/d' "${dst}"
|
||||
echo "declare -x PMODULES_INSTALL_SOURCE=\"${src_prefix}\"" >> "${dst}"
|
||||
${mkdir} -p "${target_prefix}/Tools/${PMODULES_MODULEFILES_DIR}"
|
||||
echo
|
||||
|
||||
if [[ -n "${user}" ]]; then
|
||||
@@ -505,7 +523,7 @@ get_group_depths () {
|
||||
cd "${root}"
|
||||
local group
|
||||
for group in "${Groups[@]}"; do
|
||||
local fname=$(find "${group}/${modulefiles_dir}" \
|
||||
local fname=$(${find} "${group}/${modulefiles_dir}" \
|
||||
-depth \( -type f -o -type l \) -print -quit)
|
||||
[[ -n ${fname} ]] || continue
|
||||
local -a tmp
|
||||
@@ -591,7 +609,7 @@ subcommand_install() {
|
||||
[[ -z ${dep} ]] && continue
|
||||
|
||||
# search for module with current modulepath and remember
|
||||
local modulename=$(find "${modulepath[@]}" -path "*/${dep}" \
|
||||
local modulename=$(${find} "${modulepath[@]}" -path "*/${dep}" \
|
||||
2>/dev/null | head -n 1 )
|
||||
[[ -n ${modulename} ]] || \
|
||||
std::die 3 "Oops: required module '${dep}' not found!"
|
||||
@@ -606,7 +624,7 @@ subcommand_install() {
|
||||
modulepath+=( "${path}" )
|
||||
fi
|
||||
done < "${tmpfile}"
|
||||
rm "${tmpfile}"
|
||||
${rm} "${tmpfile}"
|
||||
}
|
||||
|
||||
#......................................................................
|
||||
@@ -729,7 +747,7 @@ subcommand_install() {
|
||||
map_to_family[$_key]=${_family}
|
||||
fi
|
||||
done < <({ cd "${src_prefix}" && \
|
||||
find */"${PMODULES_MODULEFILES_DIR}" \
|
||||
${find} */"${PMODULES_MODULEFILES_DIR}" \
|
||||
\( -type l -o -type f \) \! -name ".*"; } 2>/dev/null )
|
||||
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user