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
#export MODULES_RUN_QUARANTINE='ENVVARNAME'

# 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:-}${_mlv}_modquar='`eval 'echo ${'$_mlv'}'`' ";
      fi;
      _mlrv="MODULES_RUNENV_${_mlv}";
      _mlre="${_mlre:-}${_mlv}='`eval 'echo ${'$_mlrv':-}'`' ";
   fi;
done;
if [ -n "${_mlre:-}" ]; then
   _mlre="eval ${_mlre}";
fi;

# define module command and surrounding initial environment (default value
# for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init/.modulespath)
_mlcode=`${=_mlre:-}/usr/bin/tclsh /usr/lib/mips64el-linux-gnuabi64/modulecmd.tcl zsh 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"

   # redefine module command if compat version has been activated
   if [ "${MODULES_USE_COMPAT_VERSION:-0}" = '1' ]; then
      MODULES_CMD=/usr/lib/mips64el-linux-gnuabi64/modulecmd-compat; export MODULES_CMD
      if [ -t 2 ]; then
         _module_raw() { eval `/usr/lib/mips64el-linux-gnuabi64/modulecmd-compat zsh $*`; }
      else
         module() { eval `/usr/lib/mips64el-linux-gnuabi64/modulecmd-compat zsh $*`; }
      fi
   fi

   # define function to switch between C and Tcl versions of Modules
   switchml() {
      typeset swfound=1
      if [ "${MODULES_USE_COMPAT_VERSION:-0}" = '1' ]; then
         typeset swname='main'
         if [ -e /usr/lib/mips64el-linux-gnuabi64/modulecmd.tcl ]; then
            typeset swfound=0
            unset MODULES_USE_COMPAT_VERSION
         fi
      else
         typeset swname='compatibility'
         if [ -e /usr/lib/mips64el-linux-gnuabi64/modulecmd-compat ]; then
            typeset swfound=0
            MODULES_USE_COMPAT_VERSION=1; export MODULES_USE_COMPAT_VERSION
         fi
      fi

      # switch version only if command found
      if [ $swfound -eq 0 ]; then
         echo "Switching to Modules $swname version"
         source /usr/share/modules/init/zsh
      else
         echo "Cannot switch to Modules $swname version, command not found"
         return 1
      fi
   }

   # setup ENV variables to get module defined in sub-shells (works for 'sh'
   # and 'ksh' in interactive mode and 'sh' (zsh-compat), 'bash' and 'ksh'
   # (zsh-compat) in non-interactive mode.
   ENV=/usr/share/modules/init/profile.sh; export ENV
   BASH_ENV=/usr/share/modules/init/bash; export BASH_ENV

   if [ "$MODULES_USE_COMPAT_VERSION" != '1' ]; then
   # setup FPATH to put module completion at hand in case zsh completion enabled
   if [[ ! ":$FPATH:" =~ ':/usr/share/modules/init/zsh-functions:' ]]; then
      FPATH=/usr/share/modules/init/zsh-functions${FPATH:+:}$FPATH; export FPATH
   fi
   # no completion support on compat version
   elif typeset -f compdef >/dev/null; then
      compdef -d module
   fi

   if [[ ! ":$PATH:" =~ ':/usr/bin:' ]]; then
      PATH=/usr/bin${PATH:+:}$PATH; export PATH
   fi

   manpath=`manpath 2>/dev/null`
   if [[ ! ":$manpath:" =~ ':/usr/share/man:' ]]; then
      MANPATH=/usr/share/man${manpath:+:}$manpath; export MANPATH
   fi
fi

unset _mlcode _mlret

# restore shell debugging options if disabled
if [ -n "${_mlshdbg:-}" ]; then
   set -$_mlshdbg;
   unset _mlshdbg;
fi;
