mirror of
https://github.com/envmodules/modules.git
synced 2026-06-14 00:42:43 +08:00
Add the --with-bashcompletiondir option to the configure installation script to define a particular installation directory for the bash completion script. If option is not defined, bash completion script is installed by default in initdir and it is sourced in bash init script. If option is set, completion script is installed in designated directory and bash init script does not source it.
101 lines
3.3 KiB
Plaintext
101 lines
3.3 KiB
Plaintext
unset _mlshdbg;
|
|
# disable shell debugging for the run of this init file
|
|
if [ "${MODULES_SILENT_SHELL_DEBUG:-0}" = '1' ]; then
|
|
# immediately disable debugging to echo the less number of line possible
|
|
case "$-" in
|
|
*v*x*) set +vx; _mlshdbg='vx' ;;
|
|
*v*) set +v; _mlshdbg='v' ;;
|
|
*x*) set +x; _mlshdbg='x' ;;
|
|
*) _mlshdbg='' ;;
|
|
esac;
|
|
fi;
|
|
|
|
# define modules runtine quarantine configuration
|
|
@setquarvars@export MODULES_RUN_QUARANTINE='@RUN_QUARANTINE@'
|
|
@setquarvars@@export RUNENV_VAR='RUNENV_VAL'@
|
|
@notsetquarvars@#export MODULES_RUN_QUARANTINE='ENVVARNAME'
|
|
@notsetquarvars@
|
|
# setup quarantine if defined
|
|
unset _mlre _mlIFS;
|
|
if [ -n "${IFS+x}" ]; then
|
|
_mlIFS=$IFS;
|
|
fi;
|
|
IFS=' ';
|
|
for _mlv in ${MODULES_RUN_QUARANTINE:-}; do
|
|
if [ "${_mlv}" = "${_mlv##*[!A-Za-z0-9_]}" -a "${_mlv}" = "${_mlv#[0-9]}" ]; then
|
|
if [ -n "`eval 'echo ${'$_mlv'+x}'`" ]; then
|
|
_mlre="${_mlre:-}__MODULES_QUAR_${_mlv}='`eval 'echo ${'$_mlv'}'`' ";
|
|
fi;
|
|
_mlrv="MODULES_RUNENV_${_mlv}";
|
|
_mlre="${_mlre:-}${_mlv}='`eval 'echo ${'$_mlrv':-}'`' ";
|
|
fi;
|
|
done;
|
|
if [ -n "${_mlre:-}" ]; then
|
|
_mlre="eval ${_mlre}__MODULES_QUARANTINE_SET=1 ";
|
|
fi;
|
|
|
|
# define module command and surrounding initial environment (default value
|
|
# for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init config files)
|
|
_mlcode=`${_mlre:-}@TCLSH@ @libexecdir@/modulecmd.tcl bash autoinit`
|
|
_mlret=$?
|
|
|
|
# clean temp variables used to setup quarantine
|
|
if [ -n "${_mlIFS+x}" ]; then
|
|
IFS=$_mlIFS;
|
|
unset _mlIFS;
|
|
else
|
|
unset IFS;
|
|
fi;
|
|
unset _mlre _mlv _mlrv
|
|
|
|
# no environment alteration if the above autoinit command failed
|
|
if [ $_mlret -eq 0 ]; then
|
|
eval "$_mlcode"
|
|
|
|
# export functions to get them defined in sub-shells
|
|
export -f _module_raw
|
|
export -f module
|
|
if [ "$(type -t ml)" = 'function' ]; then
|
|
export -f ml
|
|
fi
|
|
@sourcebashcomp@
|
|
@sourcebashcomp@ # enable completion only in interactive mode
|
|
@sourcebashcomp@ if [ ${BASH_VERSINFO:-0} -ge 3 ] && [[ $- =~ i ]] &&
|
|
@sourcebashcomp@ [ -r @initdir@/bash_completion ]; then
|
|
@sourcebashcomp@ source @initdir@/bash_completion
|
|
@sourcebashcomp@ fi
|
|
@setbinpath@
|
|
@setbinpath@ if [[ ! ":$PATH:" =~ ':@bindir@:' ]]; then
|
|
@setbinpath@@prependbinpath@ PATH=@bindir@${PATH:+:}$PATH
|
|
@setbinpath@@appendbinpath@ PATH=$PATH${PATH:+:}@bindir@
|
|
@setbinpath@ export PATH
|
|
@setbinpath@ fi
|
|
@setmanpath@
|
|
@setmanpath@ # initialize MANPATH if not set with a value that preserves manpath system
|
|
@setmanpath@ # configuration even after addition of paths to this variable by modulefiles
|
|
@setmanpath@ if [ ! -n "${MANPATH+x}" ]; then
|
|
@setmanpath@ MANPATH=:
|
|
@setmanpath@ export MANPATH
|
|
@setmanpath@ fi
|
|
@setmanpath@@usemanpath@ if [[ ! ":`manpath 2>/dev/null`:" =~ ':@mandir@:' ]]; then
|
|
@setmanpath@@notusemanpath@ if [[ ! ":$MANPATH:" =~ ':@mandir@:' ]]; then
|
|
@setmanpath@ if [ "$MANPATH" = ':' ] || [ "$MANPATH" = '' ]; then
|
|
@setmanpath@ _mlpathsep=''
|
|
@setmanpath@ else
|
|
@setmanpath@ _mlpathsep=:
|
|
@setmanpath@ fi
|
|
@setmanpath@@prependmanpath@ MANPATH=@mandir@$_mlpathsep$MANPATH
|
|
@setmanpath@@appendmanpath@ MANPATH=$MANPATH$_mlpathsep@mandir@
|
|
@setmanpath@ export MANPATH
|
|
@setmanpath@ unset _mlpathsep
|
|
@setmanpath@ fi
|
|
fi
|
|
|
|
unset _mlcode _mlret
|
|
|
|
# restore shell debugging options if disabled
|
|
if [ -n "${_mlshdbg:-}" ]; then
|
|
set -$_mlshdbg;
|
|
unset _mlshdbg;
|
|
fi;
|