mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2026-09-29 16:57:06 +00:00
* decompress.ps1: Refactored (w/ install.ps1, core.ps1) * fix install.ps1
65 lines
2.4 KiB
PowerShell
65 lines
2.4 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' -or (Get-ExecutionPolicy) -eq 'ByPass') {
|
|
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
|
|
}
|
|
|
|
if([System.Enum]::GetNames([System.Net.SecurityProtocolType]) -notcontains 'Tls12') {
|
|
Write-Output "Scoop requires at least .NET Framework 4.5"
|
|
Write-Output "Please download and install it first:"
|
|
Write-Output "https://www.microsoft.com/net/download"
|
|
break
|
|
}
|
|
|
|
# get core functions
|
|
$core_url = 'https://raw.githubusercontent.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...'
|
|
Add-Type -Assembly "System.IO.Compression.FileSystem"
|
|
[IO.Compression.ZipFile]::ExtractToDirectory($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
|
|
scoop config lastupdate ([System.DateTime]::Now.ToString('o'))
|
|
success 'Scoop was installed successfully!'
|
|
Write-Output "Type 'scoop help' for instructions."
|
|
|
|
$erroractionpreference = $old_erroractionpreference # Reset $erroractionpreference to original value
|