diff options
| author | xq114 <[email protected]> | 2021-11-05 16:02:33 +0800 |
|---|---|---|
| committer | xq114 <[email protected]> | 2021-11-05 16:02:33 +0800 |
| commit | e79e2886eb22d78910a6c52c5b9f77c698d5d8b9 (patch) | |
| tree | 769d272a7c8cd131c256968ac4c879613d72ef79 /xmake/scripts | |
| parent | 66c32d141498f7ae51f7afc6d08848c83e86d88b (diff) | |
improve env scripts to support binding
Diffstat (limited to 'xmake/scripts')
| -rw-r--r-- | xmake/scripts/xrepo-hook.psm1 | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/xmake/scripts/xrepo-hook.psm1 b/xmake/scripts/xrepo-hook.psm1 index 53342fba0..2210f10ef 100644 --- a/xmake/scripts/xrepo-hook.psm1 +++ b/xmake/scripts/xrepo-hook.psm1 @@ -10,25 +10,39 @@ #> function Enter-XrepoEnvironment { [CmdletBinding()] - param(); + param( + [string]$bnd + ); begin { $script:xrepoOldEnvs = (Get-ChildItem -Path Env:); - & $Env:XMAKE_EXE lua private.xrepo.action.env.info config; - if (-not $?) { - Exit 1; - } + if ($bnd -eq $Null) { + & $Env:XMAKE_EXE lua private.xrepo.action.env.info config; + if (-not $?) { + Exit 1; + } - $xmakeColorTermBackup, $Env:XMAKE_COLORTERM = $Env:XMAKE_COLORTERM, "nocolor"; - $xrepoPrompt = (& $Env:XMAKE_EXE lua --quiet private.xrepo.action.env.info prompt | Out-String); - $Env:XMAKE_COLORTERM = $xmakeColorTermBackup; - if (-not $xrepoPrompt.StartsWith("[")) { - Write-Host $xrepoPrompt; - Exit 1; - } + $xmakeColorTermBackup, $Env:XMAKE_COLORTERM = $Env:XMAKE_COLORTERM, "nocolor"; + $xrepoPrompt = (& $Env:XMAKE_EXE lua --quiet private.xrepo.action.env.info prompt | Out-String); + $Env:XMAKE_COLORTERM = $xmakeColorTermBackup; + if (-not $xrepoPrompt.StartsWith("[")) { + Write-Host "error: xmake.lua not found!"; + Exit 1; + } - $activateCommand = (& $Env:XMAKE_EXE lua private.xrepo.action.env.info script.powershell | Out-String); + $activateCommand = (& $Env:XMAKE_EXE lua --quiet private.xrepo.action.env.info script.powershell | Out-String); + } else { + $xmakeColorTermBackup, $Env:XMAKE_COLORTERM = $Env:XMAKE_COLORTERM, "nocolor"; + $xrepoPrompt = (& $Env:XMAKE_EXE lua --quiet private.xrepo.action.env.info prompt $bnd | Out-String); + $Env:XMAKE_COLORTERM = $xmakeColorTermBackup; + if (-not $xrepoPrompt.StartsWith("[")) { + Write-Host "error: invalid environment!"; + Exit 1; + } + + $activateCommand = (& $Env:XMAKE_EXE lua --quiet private.xrepo.action.env.info script.powershell $bnd | Out-String); + } Write-Verbose "[xrepo env script.powershell]`n$activateCommand"; Invoke-Expression -Command $activateCommand; |
