Skip to content

Commit

Permalink
refactor(windows install): refactor posh install script (#528)
Browse files Browse the repository at this point in the history
  • Loading branch information
SunsetTechuila authored Jun 25, 2023
1 parent 6dbad49 commit 26303e0
Showing 1 changed file with 45 additions and 44 deletions.
89 changes: 45 additions & 44 deletions resources/install.ps1
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

0 comments on commit 26303e0

Please sign in to comment.