Update run.ps1

This commit is contained in:
2024-10-03 04:14:40 -05:00
parent 0346b5f4e2
commit ccb66739a3

108
run.ps1
View File

@@ -1,43 +1,65 @@
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
$osPlatform = [System.Runtime.InteropServices.RuntimeInformation]::OSDescription $osPlatform = [System.Runtime.InteropServices.RuntimeInformation]::OSDescription
$architecture = [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture $architecture = [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture
# Adjust the platform and architecture for the API call $platform = switch -Wildcard ($osPlatform) {
$platform = switch -Wildcard ($osPlatform) { "*Windows*" { "win32" }
"*Windows*" { "win32" } "*Linux*" { "linux" }
"*Linux*" { "linux" } "*Darwin*" { "darwin" }
"*Darwin*" { "darwin" } Default { "unknown" }
Default { "unknown" } }
}
$arch = switch ($architecture) {
$arch = switch ($architecture) { "X64" { "x64" }
"X64" { "x64" } "X86" { "x86" }
"X86" { "x86" } "Arm" { "arm" }
"Arm" { "arm" } "Arm64" { "arm64" }
"Arm64" { "arm64" } Default { "unknown" }
Default { "unknown" } }
}
if ($platform -ne "win32") {
if ($platform -ne "win32") { Write-Host "Non-Windows platform detected. Please use the native SH script for your platform."
Write-Host "It looks like you are not on a Windows platform. Please use the native SH script option for your platform." exit 1
exit 1 }
}
$target = "x86_64-pc-windows-msvc"
$target = "x86_64-pc-windows-msvc" $REPO = "Xevion/spotify-player-quickauth"
$API_URL = "https://api.github.com/repos/$REPO/releases/latest"
# Fetch the latest release download URL
$REPO = "Xevion/spotify-player-quickauth" try {
$API_URL = "https://api.github.com/repos/$REPO/releases/latest" $response = Invoke-RestMethod -Uri $API_URL
$DOWNLOAD_URL = (Invoke-RestMethod -Uri $API_URL).assets | Where-Object { $_.browser_download_url -match $target } | Select-Object -ExpandProperty browser_download_url } catch {
Write-Host "Failed to fetch API response: $_"
if (-not $DOWNLOAD_URL) { exit 1
Write-Host "No release could be found for the current platform" }
exit 1
} $DOWNLOAD_URL = $response.assets | Where-Object { $_.browser_download_url -match $target } | Select-Object -ExpandProperty browser_download_url
$EXECUTABLE = "spotify-player-quickauth.exe" if (-not $DOWNLOAD_URL) {
Invoke-WebRequest -Uri $DOWNLOAD_URL -OutFile $EXECUTABLE Write-Host "No release found for the current platform"
Start-Process -FilePath $EXECUTABLE -Wait exit 1
Remove-Item $EXECUTABLE }
$EXECUTABLE_ZIP = Join-Path (Get-Location) "spotify-player-quickauth.zip"
$EXECUTABLE = "spotify-player-quickauth.exe"
Invoke-RestMethod -Uri $DOWNLOAD_URL -OutFile $EXECUTABLE_ZIP
Add-Type -AssemblyName System.IO.Compression.FileSystem
if (Test-Path $EXECUTABLE) {
Remove-Item $EXECUTABLE -ErrorAction SilentlyContinue
}
[System.IO.Compression.ZipFile]::ExtractToDirectory($EXECUTABLE_ZIP, (Get-Location).Path)
try {
& .\$EXECUTABLE
} catch {
Write-Host "Failed to start executable: $_"
} finally {
Remove-Item $EXECUTABLE_ZIP -ErrorAction SilentlyContinue
Remove-Item $EXECUTABLE -ErrorAction SilentlyContinue
}