-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.ps1
More file actions
67 lines (56 loc) · 2.4 KB
/
Copy pathinstall.ps1
File metadata and controls
67 lines (56 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Visual Regression Scanner - Windows Installer
# Usage: irm https://raw.githubusercontent.com/michaelblaess/visual-regression-scanner/main/install.ps1 | iex
$ErrorActionPreference = "Stop"
$Repo = "michaelblaess/visual-regression-scanner"
$InstallDir = "$env:LOCALAPPDATA\visual-regression-scanner"
Write-Host "=== Visual Regression Scanner - Installer ===" -ForegroundColor Cyan
Write-Host ""
# Neuestes Release von GitHub holen
Write-Host "Suche neuestes Release..."
$Release = Invoke-RestMethod "https://api.github.com/repos/$Repo/releases/latest"
$Version = $Release.tag_name
# Windows Asset finden (versionsunabhaengig per Teilstring)
$Asset = $Release.assets |
Where-Object { $_.name -like '*-windows-*.zip' } |
Select-Object -First 1
if (-not $Asset) {
Write-Host " [FEHLER] Kein Windows-Asset im Release gefunden!" -ForegroundColor Red
Write-Host " Verfuegbare Assets:"
$Release.assets | ForEach-Object { Write-Host " $($_.name)" }
exit 1
}
Write-Host "Version: $Version"
Write-Host "Download: $($Asset.browser_download_url)"
# Altes Verzeichnis entfernen
if (Test-Path $InstallDir) {
Remove-Item $InstallDir -Recurse -Force
}
New-Item -ItemType Directory -Path $InstallDir -Force | Out-Null
# Herunterladen
Write-Host "Lade herunter..."
$TmpFile = Join-Path $env:TEMP "vrs-installer.zip"
Invoke-WebRequest -Uri $Asset.browser_download_url -OutFile $TmpFile
# Entpacken
Write-Host "Entpacke..."
Expand-Archive -Path $TmpFile -DestinationPath $InstallDir -Force
Remove-Item $TmpFile -Force
# Wenn Dateien in einem Unterordner liegen, eine Ebene hochziehen
$SubDirs = Get-ChildItem $InstallDir -Directory
if ($SubDirs.Count -eq 1) {
$SubDir = $SubDirs[0].FullName
Get-ChildItem $SubDir | Move-Item -Destination $InstallDir -Force
Remove-Item $SubDir -Force -ErrorAction SilentlyContinue
}
# Zum User-PATH hinzufuegen
$UserPath = [Environment]::GetEnvironmentVariable("PATH", "User")
if ($UserPath -notlike "*$InstallDir*") {
Write-Host "Fuege $InstallDir zum PATH hinzu..."
[Environment]::SetEnvironmentVariable("PATH", "$InstallDir;$UserPath", "User")
$env:PATH = "$InstallDir;$env:PATH"
}
Write-Host ""
Write-Host "Installation abgeschlossen!" -ForegroundColor Green
Write-Host ""
Write-Host "Starten mit: visual-regression-scanner https://example.com/sitemap.xml"
Write-Host ""
Write-Host "HINWEIS: Neues Terminal oeffnen damit PATH-Aenderung wirkt." -ForegroundColor Yellow