📝 新增完整项目文档、测试套件与构建配置
This commit is contained in:
114
install-pngquant.ps1
Normal file
114
install-pngquant.ps1
Normal file
@@ -0,0 +1,114 @@
|
||||
param(
|
||||
[switch]$Force
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
function Test-PngquantInstalled {
|
||||
try {
|
||||
$result = Get-Command pngquant -ErrorAction Stop
|
||||
Write-Host "pngquant 已安装: $($result.Source)" -ForegroundColor Green
|
||||
return $true
|
||||
} catch {
|
||||
Write-Host "pngquant 未安装" -ForegroundColor Yellow
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
function Test-ScoopInstalled {
|
||||
try {
|
||||
$result = Get-Command scoop -ErrorAction Stop
|
||||
Write-Host "scoop 已安装: $($result.Source)" -ForegroundColor Green
|
||||
return $true
|
||||
} catch {
|
||||
Write-Host "scoop 未安装" -ForegroundColor Yellow
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
function Install-Scoop {
|
||||
Write-Host "正在安装 scoop..." -ForegroundColor Cyan
|
||||
|
||||
$scoopInstallScript = "irm get.scoop.sh | iex"
|
||||
|
||||
try {
|
||||
Invoke-Expression $scoopInstallScript
|
||||
Write-Host "scoop 安装成功" -ForegroundColor Green
|
||||
|
||||
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","User") + ";" + [System.Environment]::GetEnvironmentVariable("Path","Machine")
|
||||
|
||||
return $true
|
||||
} catch {
|
||||
Write-Host "scoop 安装失败: $_" -ForegroundColor Red
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
function Install-Pngquant {
|
||||
Write-Host "正在使用 scoop 安装 pngquant..." -ForegroundColor Cyan
|
||||
|
||||
try {
|
||||
scoop install pngquant
|
||||
Write-Host "pngquant 安装成功" -ForegroundColor Green
|
||||
return $true
|
||||
} catch {
|
||||
Write-Host "pngquant 安装失败: $_" -ForegroundColor Red
|
||||
return $false
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host " pngquant 安装脚本" -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
if (Test-PngquantInstalled) {
|
||||
Write-Host ""
|
||||
Write-Host "pngquant 已经安装,无需重复安装。" -ForegroundColor Green
|
||||
if (-not $Force) {
|
||||
exit 0
|
||||
}
|
||||
Write-Host "使用 -Force 参数强制重新安装..." -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
if (-not (Test-ScoopInstalled)) {
|
||||
Write-Host ""
|
||||
Write-Host "scoop 未安装,正在安装 scoop..." -ForegroundColor Yellow
|
||||
|
||||
if (-not (Install-Scoop)) {
|
||||
Write-Host ""
|
||||
Write-Host "scoop 安装失败,请手动安装后重试。" -ForegroundColor Red
|
||||
Write-Host "手动安装命令: irm get.scoop.sh | iex" -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "请重新运行此脚本以继续安装 pngquant。" -ForegroundColor Yellow
|
||||
Write-Host "或者手动运行: scoop install pngquant" -ForegroundColor Yellow
|
||||
exit 0
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
|
||||
if (Install-Pngquant) {
|
||||
Write-Host ""
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
Write-Host " pngquant 安装完成!" -ForegroundColor Green
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
|
||||
$pngquantPath = Get-Command pngquant -ErrorAction SilentlyContinue
|
||||
if ($pngquantPath) {
|
||||
Write-Host "安装路径: $($pngquantPath.Source)" -ForegroundColor Cyan
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "验证安装:" -ForegroundColor Cyan
|
||||
pngquant --version
|
||||
} else {
|
||||
Write-Host ""
|
||||
Write-Host "pngquant 安装失败。" -ForegroundColor Red
|
||||
Write-Host "请尝试手动安装: scoop install pngquant" -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
Reference in New Issue
Block a user