summaryrefslogtreecommitdiff
path: root/xmake/scripts
diff options
context:
space:
mode:
authorxq114 <[email protected]>2021-11-05 16:02:33 +0800
committerxq114 <[email protected]>2021-11-05 16:02:33 +0800
commite79e2886eb22d78910a6c52c5b9f77c698d5d8b9 (patch)
tree769d272a7c8cd131c256968ac4c879613d72ef79 /xmake/scripts
parent66c32d141498f7ae51f7afc6d08848c83e86d88b (diff)
improve env scripts to support binding
Diffstat (limited to 'xmake/scripts')
-rw-r--r--xmake/scripts/xrepo-hook.psm140
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;