From ccb66739a3e9b9e880761852707651832d8e6c8d Mon Sep 17 00:00:00 2001 From: Xevion Date: Thu, 3 Oct 2024 04:14:40 -0500 Subject: [PATCH] Update run.ps1 --- run.ps1 | 108 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 43 deletions(-) diff --git a/run.ps1 b/run.ps1 index 66923db..aa14b60 100644 --- a/run.ps1 +++ b/run.ps1 @@ -1,43 +1,65 @@ -$ErrorActionPreference = "Stop" - -$osPlatform = [System.Runtime.InteropServices.RuntimeInformation]::OSDescription -$architecture = [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture - -# Adjust the platform and architecture for the API call -$platform = switch -Wildcard ($osPlatform) { - "*Windows*" { "win32" } - "*Linux*" { "linux" } - "*Darwin*" { "darwin" } - Default { "unknown" } -} - -$arch = switch ($architecture) { - "X64" { "x64" } - "X86" { "x86" } - "Arm" { "arm" } - "Arm64" { "arm64" } - Default { "unknown" } -} - -if ($platform -ne "win32") { - Write-Host "It looks like you are not on a Windows platform. Please use the native SH script option for your platform." - exit 1 -} - - -$target = "x86_64-pc-windows-msvc" - -# Fetch the latest release download URL -$REPO = "Xevion/spotify-player-quickauth" -$API_URL = "https://api.github.com/repos/$REPO/releases/latest" -$DOWNLOAD_URL = (Invoke-RestMethod -Uri $API_URL).assets | Where-Object { $_.browser_download_url -match $target } | Select-Object -ExpandProperty browser_download_url - -if (-not $DOWNLOAD_URL) { - Write-Host "No release could be found for the current platform" - exit 1 -} - -$EXECUTABLE = "spotify-player-quickauth.exe" -Invoke-WebRequest -Uri $DOWNLOAD_URL -OutFile $EXECUTABLE -Start-Process -FilePath $EXECUTABLE -Wait -Remove-Item $EXECUTABLE +$ErrorActionPreference = "Stop" + +$osPlatform = [System.Runtime.InteropServices.RuntimeInformation]::OSDescription +$architecture = [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture + +$platform = switch -Wildcard ($osPlatform) { + "*Windows*" { "win32" } + "*Linux*" { "linux" } + "*Darwin*" { "darwin" } + Default { "unknown" } +} + +$arch = switch ($architecture) { + "X64" { "x64" } + "X86" { "x86" } + "Arm" { "arm" } + "Arm64" { "arm64" } + Default { "unknown" } +} + +if ($platform -ne "win32") { + Write-Host "Non-Windows platform detected. Please use the native SH script for your platform." + exit 1 +} + +$target = "x86_64-pc-windows-msvc" + +$REPO = "Xevion/spotify-player-quickauth" +$API_URL = "https://api.github.com/repos/$REPO/releases/latest" + +try { + $response = Invoke-RestMethod -Uri $API_URL +} catch { + Write-Host "Failed to fetch API response: $_" + exit 1 +} + +$DOWNLOAD_URL = $response.assets | Where-Object { $_.browser_download_url -match $target } | Select-Object -ExpandProperty browser_download_url + +if (-not $DOWNLOAD_URL) { + Write-Host "No release found for the current platform" + exit 1 +} + +$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 +}