-
-
Notifications
You must be signed in to change notification settings - Fork 178
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(windows install): refactor posh install script (#528)
- Loading branch information
1 parent
6dbad49
commit 26303e0
Showing
1 changed file
with
45 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,61 +1,62 @@ | ||
# Modified from https://github.com/JulienMaille/dribbblish-dynamic-theme/blob/main/install.ps1 | ||
$ErrorActionPreference = 'Stop' | ||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 | ||
|
||
Write-Host "Setting up..." -ForegroundColor "Green" | ||
Write-Host -Object 'Setting up...' -ForegroundColor Cyan | ||
|
||
$checkSpice = Get-Command spicetify -ErrorAction Silent | ||
if ($null -eq $checkSpice) { | ||
Write-Host -ForegroundColor Red "Spicetify not found. Installing that for you..." | ||
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-cli/master/install.ps1" | Invoke-Expression | ||
if (-not (Get-Command -Name spicetify -ErrorAction SilentlyContinue)) { | ||
Write-Host -Object 'Spicetify not found. Installing it for you...' -ForegroundColor Yellow | ||
$Parameters = @{ | ||
Uri = 'https://raw.githubusercontent.com/spicetify/spicetify-cli/master/install.ps1' | ||
UseBasicParsing = $true | ||
} | ||
Invoke-WebRequest @Parameters | Invoke-Expression | ||
} | ||
|
||
$spicePath = "$env:APPDATA\spicetify" | ||
$sp_dot_dir = "$spicePath\CustomApps" | ||
if (-not (Test-Path $sp_dot_dir)) { | ||
Write-Host "Making a CustomApps folder..." -ForegroundColor "Cyan" | ||
New-Item -Path $sp_dot_dir -ItemType Directory | Out-Null | ||
} | ||
|
||
Write-Host "Downloading..." -ForegroundColor "Green" | ||
|
||
$latest_release_uri = | ||
"https://api.github.com/repos/spicetify/spicetify-marketplace/releases/latest" | ||
$latest_release_json = Invoke-WebRequest -Uri $latest_release_uri -UseBasicParsing | ||
$version = ($latest_release_json | ConvertFrom-Json).tag_name -replace "v", "" | ||
$download_uri = "https://github.com/spicetify/spicetify-marketplace/releases/download/" + | ||
"v$version/spicetify-marketplace.zip" | ||
|
||
Invoke-WebRequest -Uri $download_uri -UseBasicParsing -OutFile "$sp_dot_dir\marketplace.zip" | ||
|
||
spicetify path userdata | Out-Null | ||
$spiceUserDataPath = (spicetify path userdata) | ||
$marketAppPath = "$spiceUserDataPath\CustomApps\marketplace" | ||
$marketThemePath = "$spiceUserDataPath\Themes\marketplace" | ||
$isMarketplaceInstalled = ( | ||
((spicetify config custom_apps) -contains "marketplace") -and (Test-Path -Path "$sp_dot_dir\marketplace" -PathType Container) | ||
((spicetify config custom_apps) -contains 'marketplace') -and (Test-Path -Path $marketAppPath -PathType Container) | ||
) | ||
|
||
Write-Host "Unzipping and installing..." -ForegroundColor "Green" | ||
Expand-Archive -Path "$sp_dot_dir\marketplace.zip" -DestinationPath $sp_dot_dir -Force | ||
Remove-Item -Path "$sp_dot_dir\marketplace.zip" -Force | ||
if (Test-Path -Path "$sp_dot_dir\marketplace") { | ||
Write-Host "marketplace was already found! Updating..." -ForegroundColor "Cyan" | ||
Remove-Item -Path "$sp_dot_dir\marketplace" -Force -Recurse | ||
Write-Host -Object 'Removing and creating Marketplace folders...' -ForegroundColor Cyan | ||
Remove-Item -Path $marketAppPath, $marketThemePath -Recurse -Force -ErrorAction SilentlyContinue | Out-Null | ||
New-Item -Path $marketAppPath, $marketThemePath -ItemType Directory -Force | Out-Null | ||
|
||
Write-Host 'Downloading Marketplace...' -ForegroundColor Cyan | ||
$marketArchivePath = "$marketAppPath\marketplace.zip" | ||
$unpackedFolderPath = "$marketAppPath\spicetify-marketplace-dist" | ||
$Parameters = @{ | ||
Uri = 'https://github.com/spicetify/spicetify-marketplace/releases/latest/download/spicetify-marketplace.zip' | ||
UseBasicParsing = $true | ||
OutFile = $marketArchivePath | ||
} | ||
Rename-Item -Path "$sp_dot_dir\spicetify-marketplace-dist" -NewName "marketplace" -Force | ||
spicetify config custom_apps spicetify-marketplace- | ||
spicetify config custom_apps marketplace | ||
Invoke-WebRequest @Parameters | ||
|
||
# Color injection fix | ||
spicetify config inject_css 1 | ||
spicetify config replace_colors 1 | ||
Write-Host -Object 'Unzipping and installing...' -ForegroundColor Cyan | ||
Expand-Archive -Path $marketArchivePath -DestinationPath $marketAppPath -Force | ||
Move-Item -Path "$unpackedFolderPath\*" -Destination $marketAppPath -Force | ||
Remove-Item -Path $marketArchivePath, $unpackedFolderPath -Force | ||
spicetify config custom_apps spicetify-marketplace- -q | ||
spicetify config custom_apps marketplace | ||
spicetify config inject_css 1 replace_colors 1 | ||
|
||
Write-Host "Applying placeholder theme..." -ForegroundColor "Cyan" | ||
Remove-Item -Recurse -Force "$spicePath\Themes\marketplace" -ErrorAction Ignore | ||
New-Item -Path "$spicePath\Themes\marketplace" -ItemType Directory | Out-Null | ||
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-marketplace/main/resources/color.ini" -OutFile "$spicePath\Themes\marketplace\color.ini" | ||
Write-Host -Object 'Downloading placeholder theme...' -ForegroundColor Cyan | ||
$Parameters = @{ | ||
Uri = 'https://raw.githubusercontent.com/spicetify/spicetify-marketplace/main/resources/color.ini' | ||
UseBasicParsing = $true | ||
OutFile = "$marketThemePath\color.ini" | ||
} | ||
Invoke-WebRequest @Parameters | ||
|
||
Write-Host -Object 'Applying...' -ForegroundColor Cyan | ||
if (-not $isMarketplaceInstalled) { | ||
spicetify config current_theme marketplace | ||
} | ||
|
||
spicetify backup | ||
if (-not (Test-Path -Path "$spiceUserDataPath\Backup" -PathType Container)) { | ||
spicetify backup | ||
} | ||
spicetify apply | ||
|
||
Write-Host "Done! If nothing has happened, do spicetify apply" -ForegroundColor "Green" | ||
Write-Host -Object 'Done! If nothing has happened, do spicetify apply' -ForegroundColor Green |