PortValhalla/scripts/Windows/Scripts/Hooks.ps1

27 lines
592 B
PowerShell
Raw Normal View History

2024-07-30 16:34:19 +00:00
function Invoke-Hook() {
param(
[string] $Name,
[System.Action] $Fallback
)
if ($Fallback) {
$scriptBlock = { $Fallback.Invoke(); };
} else {
$scriptBlock = { };
}
if (Get-Command "$Name" -ErrorAction SilentlyContinue) {
$parameters = {
fallback = $scriptBlock
};
Write-Host "Running Hook ``$Name``";
& "$Name" @parameters;
} elseif ($Fallback) {
Write-Host "Running Default of Hook ``$Name``";
& $scriptBlock;
} else {
Write-Host "Hook ``$Name``";
}
}