Files
ssh-monitor/contrib/install-git-hooks.ps1

55 lines
2.0 KiB
PowerShell

# Install git hooks + local manifest wrappers (not committed to git).
# Run from repo root: .\contrib\install-git-hooks.ps1
$ErrorActionPreference = "Stop"
$Root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
$HookSrc = Join-Path $Root "contrib\hooks\pre-commit"
$HookDst = Join-Path $Root ".git\hooks\pre-commit"
$LocalDir = Join-Path $Root ".local"
$LocalScript = Join-Path $LocalDir "build-release-manifest.ps1"
$LocalScriptSh = Join-Path $LocalDir "build-release-manifest.sh"
if (-not (Test-Path (Join-Path $Root ".git"))) {
throw "Not a git repository: $Root"
}
if (-not (Test-Path $HookSrc)) {
throw "Missing hook file: $HookSrc"
}
New-Item -ItemType Directory -Force -Path (Split-Path $HookDst) | Out-Null
Copy-Item -Force $HookSrc $HookDst
New-Item -ItemType Directory -Force -Path $LocalDir | Out-Null
@'
# Local manifest wrapper (gitignored). Manual generation on Windows.
$ErrorActionPreference = "Stop"
$Root = git -C "$PSScriptRoot\.." rev-parse --show-toplevel 2>$null
if (-not $Root) {
$Root = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
}
$py = Get-Command python -ErrorAction SilentlyContinue
if (-not $py) { $py = Get-Command python3 -ErrorAction SilentlyContinue }
if (-not $py) { throw "python not found in PATH" }
& $py.Source (Join-Path $Root "contrib\manifest\generate.py") @args
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
'@ | Set-Content -Path $LocalScript -Encoding UTF8
@'
#!/bin/bash
# Local manifest wrapper (gitignored). Git Bash.
set -euo pipefail
ROOT="$(git rev-parse --show-toplevel)"
exec python3 "$ROOT/contrib/manifest/generate.py" "$@"
'@ | Set-Content -Path $LocalScriptSh -Encoding ASCII -NoNewline
Add-Content -Path $LocalScriptSh -Value "`n" -NoNewline
Write-Host "OK: pre-commit hook -> $HookDst"
Write-Host "OK: manual script (PS) -> $LocalScript"
Write-Host "OK: manual script (sh) -> $LocalScriptSh"
Write-Host ""
Write-Host "Manual: .\.local\build-release-manifest.ps1"
Write-Host " python contrib\manifest\generate.py"
Write-Host "Pre-commit runs on version bump (python required in PATH)."