vinduer - Powershell Git Hook Exit Code

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har følgende i min .git/kroge/pre-commit-fil


#!/bin/sh
exec c:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy RemoteSigned -Command " Get-Location | \% { '$\_pre-commit-hook.ps1'} | \% { & $\_ }"
exit


Dette gennemfører koden korrekt i filen pre-commit-hook.ps1 i samme mappe, men tager ikke udgangskoden. Ifølge tldp.org vil den sidste exitkode blive returneret, hvis kun exit er angivet. Git kroge vil mislykkes, hvis exitkoden er ikke-nul, men selvom mit powershell-script returnerer en statuskode på 1, lykkes det altid. Hvad kan jeg gøre for at fange exitkode fra powerhell-scriptet, så krogen vil fungere korrekt? [7]

Bedste reference


Hold indkaldelsen af ​​ps1 script enkel, og du skal have det til at fungere. Følgende virker for mig:


#!/bin/sh
echo 
exec powershell.exe -ExecutionPolicy RemoteSigned -File '..githookspre-commit-hook.ps1'
exit


PS1-scriptet havde lige en exit 1 og forpligten skete ikke.


Når du laver ting som -command, er Powershell ikke kendt for at fungere ordentligt, og du skal muligvis gøre noget som -command {& . est.ps1; exit $lastexitcode}