Code de sortie de Powershell Git Hook

J’ai les éléments suivants dans mon fichier .git / hooks / pre-commit

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

Cela exécute avec succès le code dans le fichier pre-commit-hook.ps1 dans le même répertoire, mais ne capture pas le code de sortie. Selon tldp.org, le dernier code de sortie sera renvoyé si seule la sortie est spécifiée. Les hooks Git échoueront si le code de sortie est différent de zéro, mais même si mon script powershell renvoie un code d’état de 1, il réussit toujours. Que puis-je faire pour capturer le code de sortie du script powershell afin que le hook fonctionne correctement?

Gardez l’appel du script ps1 simple et vous devriez le faire fonctionner. Les travaux suivants pour moi:

 #!/bin/sh echo exec powershell.exe -ExecutionPolicy RemoteSigned -File '.\.git\hooks\pre-commit-hook.ps1' exit 

Le script ps1 avait juste une exit 1 et le commit ne s’est pas produit.

Lorsque vous faites des choses comme -command , Powershell ne fonctionne pas correctement et vous devrez peut-être faire quelque chose comme -command {& .\test.ps1; exit $lastexitcode} -command {& .\test.ps1; exit $lastexitcode}