format updates for shfmt README.md
[webi-installers/.git] / _webi / template.ps1
index 1ccc5c6c7b1d92aa6fbd509eb7fb233c0b163dd7..121eea057418bb571dc29baa67346b2c7d890599 100644 (file)
@@ -1,4 +1,11 @@
-# If a command returns an error, halt the script.
+#!/usr/bin/env pwsh
+
+# this allows us to call ps1 files, which allows us to have spaces in filenames
+# ('powershell "$Env:USERPROFILE\test.ps1" foo' will fail if it has a space in
+# the path but '& "$Env:USERPROFILE\test.ps1" foo' will work even with a space)
+Set-ExecutionPolicy -Scope Process Bypass
+
+# If a command returns an error, halt the script.
 $ErrorActionPreference = 'Stop'
 
 # Ignore progress events from cmdlets so Invoke-WebRequest is not painfully slow
@@ -17,20 +24,32 @@ pushd $Env:USERPROFILE
 # Make paths if needed
 if (!(Test-Path -Path Downloads))
 {
-    New-Item -Path Downloads -ItemType Directory
+    New-Item -Path Downloads -ItemType Directory -Force
 }
 if (!(Test-Path -Path .local\bin))
 {
-    New-Item -Path .local\bin -ItemType Directory
+    New-Item -Path .local\bin -ItemType Directory -Force
 }
 if (!(Test-Path -Path .local\opt))
 {
-    New-Item -Path .local\opt -ItemType Directory
+    New-Item -Path .local\opt -ItemType Directory -Force
 }
 
 # {{ baseurl }}
 # {{ version }}
 
+function webi_add_path
+{
+    & "$Env:USERPROFILE\.local\bin\pathman.exe" add "$args[0]"
+    # Note: not all of these work as expected, so we use the unix-style, which is most consistent
+    #& "$Env:USERPROFILE\.local\bin\pathman.exe" add ~/.local/bin
+    #& "$Env:USERPROFILE\.local\bin\pathman.exe" add "$Env:USERPROFILE\.local\bin"
+    #& "$Env:USERPROFILE\.local\bin\pathman.exe" add %USERPROFILE%\.local\bin
+}
+
+# Run pathman to set up the folder
+& "$Env:USERPROFILE\.local\bin\pathman.exe" add ~/.local/bin
+
 {{ installer }}
 
 # Done