31 lines
1.2 KiB
PowerShell
31 lines
1.2 KiB
PowerShell
$ErrorActionPreference = "Stop"
|
|
|
|
function ConvertFrom-Utf8Base64([string]$Value) {
|
|
return [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($Value))
|
|
}
|
|
|
|
function Invoke-Git([string[]]$Arguments) {
|
|
$Output = & git @Arguments
|
|
if ($LASTEXITCODE -ne 0) {
|
|
$Prefix = ConvertFrom-Utf8Base64 "R2l0IOWRveS7pOaJp+ihjOWksei0pe+8mg=="
|
|
throw "$Prefix git $($Arguments -join ' ')"
|
|
}
|
|
return $Output
|
|
}
|
|
|
|
$RepoRoot = (Invoke-Git @("rev-parse", "--show-toplevel") | Select-Object -First 1).Trim()
|
|
$HookFile = Join-Path $RepoRoot ".githooks\commit-msg"
|
|
if (-not (Test-Path -LiteralPath $HookFile -PathType Leaf)) {
|
|
$Prefix = ConvertFrom-Utf8Base64 "5pyq5om+5Yiw5o+Q5Lqk6Zeo56aB77ya"
|
|
throw "$Prefix$HookFile"
|
|
}
|
|
|
|
Invoke-Git @("-C", $RepoRoot, "config", "--local", "core.hooksPath", ".githooks") | Out-Null
|
|
$ConfiguredPath = (Invoke-Git @("-C", $RepoRoot, "config", "--local", "--get", "core.hooksPath") | Select-Object -First 1).Trim()
|
|
if ($ConfiguredPath -ne ".githooks") {
|
|
$Prefix = ConvertFrom-Utf8Base64 "R2l0IGhvb2tzUGF0aCDphY3nva7moKHpqozlpLHotKXvvIzlvZPliY3lgLzvvJo="
|
|
throw "$Prefix$ConfiguredPath"
|
|
}
|
|
|
|
Write-Host (ConvertFrom-Utf8Base64 "UEFTUzog5bey5Li65b2T5YmN5YWL6ZqG5ZCv55SoIEdpdCDkuK3mlofmj5DkuqTpl6jnpoHvvIhjb3JlLmhvb2tzUGF0aD0uZ2l0aG9va3PvvInjgII=")
|