# define modules runtine quarantine configuration
ENV['MODULES_RUN_QUARANTINE'] = 'LD_LIBRARY_PATH LD_PRELOAD'
# setup quarantine if defined
if ENV.has_key?('MODULES_RUN_QUARANTINE') then
ENV['MODULES_RUN_QUARANTINE'].split(' ').each do |_mlv|
if _mlv =~ /^[A-Za-z_][A-Za-z0-9_]*$/ then
if ENV.has_key?(_mlv) then
_mlre << _mlv + "_modquar='" + ENV[_mlv].to_s + "' "
_mlrv = 'MODULES_RUNENV_' + _mlv
_mlre << _mlv + "='" + ENV[_mlrv].to_s + "' "
# define module command and surrounding initial environment (default value
# for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init config files)
eval `#{_mlre}/usr/bin/tclsh /usr/share/Modules/libexec/modulecmd.tcl ruby autoinit`
# redefine module command if compat version has been activated
if ENV['MODULES_USE_COMPAT_VERSION'] == '1' then
ENV['MODULES_CMD'] = '/usr/share/Modules/libexec/modulecmd-compat'
def ENVModule.module(*args)
if args[0].kind_of?(Array) then
eval `/usr/share/Modules/libexec/modulecmd-compat ruby #{args}`
# return value as done on new main version