MOON
Server: Apache
System: Linux s5.yayogua.com.py 6.12.0-124.55.3.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:54:02 EDT 2026 x86_64
User: w3com (1005)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: //usr/share/Modules/init/pwsh.ps1
# define modules runtime quarantine configuration
$env:MODULES_RUN_QUARANTINE = 'LD_LIBRARY_PATH LD_PRELOAD'


if ($IsWindows) {
   # define Modules-specific environment variables
   $env:MODULESHOME = (Split-Path -Parent -Path (Split-Path -Parent -Path $MyInvocation.MyCommand.Definition)) | Resolve-Path
   $env:MODULES_CMD = Join-Path -Path $env:MODULESHOME -ChildPath 'libexec/modulecmd.tcl'

   # common module command (handles call to modulecmd.tcl, execution of
   # generated commands and exit codes)
   function global:_envmodule_common {
      param([Parameter(ValueFromRemainingArguments)] [string[]] $allargs)
      $global:_mlstatus = $true
      $cmd_is_query = "$allargs" -match '(is-loaded|is-avail|is-used|is-saved)'

      # setup quarantine if defined
      $_mlre_set = ''
      $_mlre_reset = ''
      if ($env:MODULES_RUN_QUARANTINE) {
         foreach ($_mlv in $env:MODULES_RUN_QUARANTINE -split ' ') {
            if ($_mlv -match '^[A-Za-z_][A-Za-z0-9_]*$') {
               $_mlv_value = [System.Environment]::GetEnvironmentVariable($_mlv)
               if ($_mlv_value) {
                  $_mlre_set += "`$env:__MODULES_QUAR_${_mlv}='$_mlv_value';"
                  $_mlre_reset = "Remove-Item -Path env:__MODULES_QUAR_${_mlv};" + $_mlre_reset
               }
               $_mlrv = "MODULES_RUNENV_$_mlv"
               $_mlrv_value = [System.Environment]::GetEnvironmentVariable($_mlrv)
               $_mlre_set += "`$env:$_mlv='$_mlrv_value';"
               $_mlre_reset = "`$env:$_mlv=`"`$env:__MODULES_QUAR_${_mlv}`";" + $_mlre_reset
            }
         }
         if ($_mlre_set -ne '') {
            $_mlre_set += "`$env:__MODULES_QUARANTINE_SET=1"
            $_mlre_reset += "Remove-Item -Path env:__MODULES_QUARANTINE_SET"
         }
      }

      if ($_mlre_set -ne '') {
         Invoke-Expression "$_mlre_set"
         Remove-Variable "_mlre_set"
      }

      $output = & tclsh "$env:MODULES_CMD" pwsh $allargs 2>&1

      if ($_mlre_reset -ne '') {
         Invoke-Expression "$_mlre_reset"
         Remove-Variable "_mlre_reset"
      }

      $outmsg = ($output | ? {$_.gettype().Name -ne "ErrorRecord"}) -join "`n"
      $errmsg = ($output | ? {$_.gettype().Name -eq "ErrorRecord"}) -join "`n"
      $errmsg = $errmsg.replace(
         "System.Management.Automation.RemoteException", ""
      )
      if ($outmsg) {
         Invoke-Expression $outmsg
      }
      if (($_mlstatus -eq $false) -and (!$cmd_is_query)) {
         $global:LastExitCode = 1
      } else {
         $global:LastExitCode = 0
      }

      $mlredir = $true
      if ($null -ne $env:MODULES_REDIRECT_OUTPUT) {
         if ($env:MODULES_REDIRECT_OUTPUT -eq '0') {
            $mlredir = $false
         }
      }
      if ("$allargs" -match '--no-redirect') {
         $mlredir = $false
      } elseif ("$allargs" -match '--redirect') {
         $mlredir = $true
      }

      if ($errmsg) {
         if ($_mlstatus -eq $false) {
            $global:LastExitCode = 1
         } else {
            if ($mlredir) {
               [Console]::WriteLine($errmsg)
            } else {
               [Console]::Error.WriteLine($errmsg)
            }
            $errmsg = $null
         }
      }

      if ((($_mlstatus -ne $true) -and ($_mlstatus -ne $false)) -or ($cmd_is_query)) {
         return $errmsg,$_mlstatus
      }
      return $errmsg,$null
   }

   # main module command (envmodule because module is already a pwsh keyword)
   function global:envmodule {
      param([Parameter(ValueFromRemainingArguments)] [string[]] $allargs)
      $errmsg,$retmsg = & _envmodule_common $allargs
      if ("$errmsg" -ne "") {
         $PSCmdlet.ThrowTerminatingError(
            [System.Management.Automation.ErrorRecord]::new(
               ([System.Exception]"$errmsg"),
               'error while running modulecmd.tcl via envmodule',
               [System.Management.Automation.ErrorCategory]::FromStdErr,
               $null
         ))
      }
      if ("$retmsg" -ne "") {
         return $retmsg
      }
   }

   # ml shortcut for module command
   function global:ml {
      param([Parameter(ValueFromRemainingArguments)] [string[]] $allargs)
      $mlargs = @('ml')
      if ($allargs.Length) {
         $mlargs += $allargs
      }
      $errmsg,$retmsg = _envmodule_common $mlargs
      if ("$errmsg" -ne "") {
         $PSCmdlet.ThrowTerminatingError(
            [System.Management.Automation.ErrorRecord]::new(
               ([System.Exception]"$errmsg"),
               'error while running modulecmd.tcl via ml',
               [System.Management.Automation.ErrorCategory]::FromStdErr,
               $null
         ))
      }
      if ("$retmsg" -ne "") {
         return $retmsg
      }
   }

   # enable a default modulepath directory
   & envmodule use "$env:MODULESHOME/modulefiles"
} else {
   $_mlre_set = ''
   $_mlre_reset = ''

   # setup quarantine if defined
   if ($env:MODULES_RUN_QUARANTINE) {
      foreach ($_mlv in $env:MODULES_RUN_QUARANTINE -split ' ') {
         if ($_mlv -match '^[A-Za-z_][A-Za-z0-9_]*$') {
            $_mlv_value = [System.Environment]::GetEnvironmentVariable($_mlv)
            if ($_mlv_value) {
               $_mlre_set += "`$env:__MODULES_QUAR_${_mlv}='$_mlv_value';"
               $_mlre_reset = "Remove-Item -Path env:__MODULES_QUAR_${_mlv};" + $_mlre_reset
            }
            $_mlrv = "MODULES_RUNENV_$_mlv"
            $_mlrv_value = [System.Environment]::GetEnvironmentVariable($_mlrv)
            $_mlre_set += "`$env:$_mlv='$_mlrv_value';"
            $_mlre_reset = "`$env:$_mlv=`"`$env:__MODULES_QUAR_${_mlv}`";" + $_mlre_reset
         }
      }
      if ($_mlre_set -ne '') {
         $_mlre_set += "`$env:__MODULES_QUARANTINE_SET=1"
         $_mlre_reset += "Remove-Item -Path env:__MODULES_QUARANTINE_SET"
      }
   }

   if ($_mlre_set -ne '') {
      Invoke-Expression "$_mlre_set"
      Remove-Variable "_mlre_set"
   }

   # define module command and surrounding initial environment (default value
   # for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init config files)
   (& "/usr/bin/tclsh" "/usr/share/Modules/libexec/modulecmd.tcl" pwsh autoinit) -join "`n" | Invoke-Expression

   if ($_mlre_reset -ne '') {
      Invoke-Expression "$_mlre_reset"
      Remove-Variable "_mlre_reset"
   }
}