Fix testing path in boostrap.ps1
[webi-installers/.git] / _webi / webi.ps1
index 5bb6966e966c4504fafdc52b7ebb7486e46c8e65..0a1b89f9f9946db7d22ad909b2c7be79d3e3ab0c 100644 (file)
@@ -6,8 +6,14 @@ $ErrorActionPreference = 'Stop'
 # Ignore progress events from cmdlets so Invoke-WebRequest is not painfully slow
 $ProgressPreference = 'SilentlyContinue'
 
-# TODO get arch
-$Env:WEBI_UA = 'Windows/10 amd64'
+# This is the canonical CPU arch when the process is emulated
+$my_arch = "$Env:PROCESSOR_ARCHITEW6432"
+IF ($my_arch -eq $null -or $my_arch -eq "") {
+  # This is the canonical CPU arch when the process is native
+  $my_arch = "$Env:PROCESSOR_ARCHITECTURE"
+}
+# TODO API should know to prefer x86 for windows when arm binary is not available
+$Env:WEBI_UA = "Windows/10 $my_arch"
 $exename = $args[0]
 
 # Switch to userprofile
@@ -18,7 +24,11 @@ if (!(Test-Path -Path .local\bin))
 {
     New-Item -Path .local\bin -ItemType Directory
 }
-Set-Content -Path .local\bin\webi.bat -Value "echo off`r`npushd %USERPROFILE%`r`npowershell -ExecutionPolicy Bypass .local\bin\webi.ps1 %1`r`npopd"
+if (!(Test-Path -Path .local\xbin))
+{
+    New-Item -Path .local\xbin -ItemType Directory
+}
+Set-Content -Path .local\bin\webi.bat -Value "@echo off`r`npushd %USERPROFILE%`r`npowershell -ExecutionPolicy Bypass .local\bin\webi.ps1 %1`r`npopd"
 if (!(Test-Path -Path .local\opt))
 {
     New-Item -Path .local\opt -ItemType Directory
@@ -44,17 +54,18 @@ if (!(Test-Path -Path .local\bin\pathman.exe))
 }
 
 # Run pathman to set up the folder
-#& "$Env:USERPROFILE\.local\bin\pathman.exe" add "$Env:USERPROFILE\.local\bin"
-& "$Env:USERPROFILE\.local\bin\pathman.exe" add .local\bin
+# (using unix style path because... cmd vs powershell vs whatever)
+& "$Env:USERPROFILE\.local\bin\pathman.exe" add ~/.local/bin
 
 # {{ baseurl }}
 # {{ version }}
 
 # Fetch <whatever>.ps1
 # TODO detect formats
-# Invoke-WebRequest -UserAgent "Windows amd64" "$Env:WEBI_HOST/api/installers/$exename.ps1?formats=zip,tar" -OutFile ".\.local\tmp\$exename.install.ps1"
-echo "Downloading $Env:WEBI_HOST/api/installers/$exename.ps1?formats=zip,tar"
-& curl.exe -fsSL -A "$Env:WEBI_UA" "$Env:WEBI_HOST/api/installers/$exename.ps1?formats=zip,tar" -o .\.local\tmp\$exename.install.ps1
+$PKG_URL = "$Env:WEBI_HOST/api/installers/$exename.ps1?formats=zip,exe,tar"
+echo "Downloading $PKG_URL"
+# Invoke-WebRequest -UserAgent "Windows amd64" "$PKG_URL" -OutFile ".\.local\tmp\$exename.install.ps1"
+& curl.exe -fsSL -A "$Env:WEBI_UA" "$PKG_URL" -o .\.local\tmp\$exename.install.ps1
 
 # Run <whatever>.ps1
 powershell .\.local\tmp\$exename.install.ps1