2 votos

Git gancho pre-confirmación de que los controles de la aplicación abierta

Estoy usando git para administrar un proyecto que tiene un par de archivos binarios que necesitan ser cerrados antes de ser cometido. Así que necesito un git gancho, que comprueba si la aplicación que tiene estos archivos abiertos se está ejecutando.

Aquí está el script que estoy usando

#!/usr/bin/env osascript

tell application "System Events"
    set apps to the name of every process whose background only is false
end tell

if "Some App" is in apps then
    error "Some App is running. Can't commit until Some App is quit" number 5
end if

Pero estoy recibiendo este error cuando me comprometo o la ejecución de la pre-commit. Incluso cuando "Algunas App" no se está ejecutando.

.git/hooks/pre-commit:50:106: execution error: An error of type -10810 has occurred. (-10810)

Los permisos del archivo son

-rwxr-xr-x@ 1 toddgeist  staff   263 Dec  7 07:33 pre-commit

1voto

ganbustein Puntos 1016

No dices cuál es el problema que está ejecutando, así que déjame adivinar.

Si usted está teniendo problemas con la forma de la frase "-- mostrar un mensaje y salir con no cero" estado parte, utilizar el error de comando:

#!/usr/bin/env osascript

tell application "System Events"
    set apps to the name of every process whose background only is false
end tell

if "Some Application" is in apps then
    error "Some Application is running" number 5
end if

El número (5 en el ejemplo) no importa; osascript va a salir con estado 1 no importa qué número que usted elija. Usted no tiene control sobre el formato del mensaje, pero el de salida distinto de cero en estado de bloque de la confirmación.

Si usted está teniendo problemas para conseguir el gancho pre-confirmación para ejecutar aún, recuerde guardar como .git/hooks/pre-commit y hacerlo ejecutable.

(actualización) si usted consigue el -10810 error intente hacerlo con los Eventos del Sistema. Como este

#!/usr/bin/env osascript

set someApp to "Some App"
set appIsRunning to false
if application someApp is running then
    set appIsRunning to true
end if
if appIsRunning then
    error "Can't commit. Please quit Some App" number 5
end if

0voto

outsider Puntos 21

Si su osascript (arriba), obras en las que se puede iniciar a través de una secuencia de comandos de shell. Gire el osascript en una aplicación con el editor de secuencias de comandos. Luego de esta secuencia de comandos de shell que podría ser su git gancho pre-confirmación. Algo así como:

#!/bin/bash
/usr/bin/osascript $HOME/bin/YOUR_OSASCRIPT.app 2>/dev/null

Yo uso esta técnica para ejecutar las secuencias de comandos a través de crontab por lo que debe funcionar en su situación.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X