mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2026-10-04 19:18:26 +00:00
For AppVeyor CI the `$errorActionPreference` setting is persisting after I install scoop, subsequently causing issues with installing scoop apps (e.g. failing the whole build because an installer executable outputs what looks like an error).
56 lines
1.9 KiB
PowerShell
56 lines
1.9 KiB
PowerShell
# requires -v 3
|
|
|
|
# remote install:
|
|
# iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
|
|
$old_erroractionpreference = $erroractionpreference
|
|
$erroractionpreference = 'stop' # quit if anything goes wrong
|
|
|
|
if(($PSVersionTable.PSVersion.Major) -lt 3) {
|
|
Write-Output "PowerShell 3 or greater is required to run Scoop."
|
|
Write-Output "Upgrade PowerShell: https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell"
|
|
break
|
|
}
|
|
|
|
# show notification to change execution policy:
|
|
if((get-executionpolicy) -gt 'RemoteSigned') {
|
|
Write-Output "PowerShell requires an execution policy of 'RemoteSigned' to run Scoop."
|
|
Write-Output "To make this change please run:"
|
|
Write-Output "'Set-ExecutionPolicy RemoteSigned -scope CurrentUser'"
|
|
break
|
|
}
|
|
|
|
# get core functions
|
|
$core_url = 'https://raw.github.com/lukesampson/scoop/master/lib/core.ps1'
|
|
Write-Output 'Initializing...'
|
|
Invoke-Expression (new-object net.webclient).downloadstring($core_url)
|
|
|
|
# prep
|
|
if(installed 'scoop') {
|
|
write-host "Scoop is already installed. Run 'scoop update' to get the latest version." -f red
|
|
# don't abort if invoked with iex that would close the PS session
|
|
if($myinvocation.mycommand.commandtype -eq 'Script') { return } else { exit 1 }
|
|
}
|
|
$dir = ensure (versiondir 'scoop' 'current')
|
|
|
|
# download scoop zip
|
|
$zipurl = 'https://github.com/lukesampson/scoop/archive/master.zip'
|
|
$zipfile = "$dir\scoop.zip"
|
|
Write-Output 'Downloading...'
|
|
dl $zipurl $zipfile
|
|
|
|
'Extracting...'
|
|
unzip $zipfile "$dir\_tmp"
|
|
Copy-Item "$dir\_tmp\scoop-master\*" $dir -r -force
|
|
Remove-Item "$dir\_tmp" -r -force
|
|
Remove-Item $zipfile
|
|
|
|
Write-Output 'Creating shim...'
|
|
shim "$dir\bin\scoop.ps1" $false
|
|
|
|
ensure_robocopy_in_path
|
|
ensure_scoop_in_path
|
|
success 'Scoop was installed successfully!'
|
|
Write-Output "Type 'scoop help' for instructions."
|
|
|
|
$erroractionpreference = $old_erroractionpreference # Reset $erroractionpreference to original value
|