Cada vez que el usuario escribe git commit -a
,
quiero ejecutarlo en mi propio script,
A continuación, ejecute el comando original git commit..
y haz que se ejecute como lo haría normalmente.
Cada vez que el usuario escribe git commit -a
,
quiero ejecutarlo en mi propio script,
A continuación, ejecute el comando original git commit..
y haz que se ejecute como lo haría normalmente.
Respuestas:
Podría usar ".git / hooks" para instalar un gancho "pre-commit", tal vez: http://git-scm.com/book/en/Customizing-Git-Git-Hooks
Esto es normalmente cómo harías esto. Por supuesto, sería útil si explicara exactamente QUÉ desea que haga la "sobrecarga".
Si quieres que tu "gancho" no se limite solo a git
pero necesitas hacer que funcione con cualquier ejecutable, puedes usar alias
alias git='myhackyscript.sh'
entonces myhackyscript.sh
puede parecer
#!/bin/bash
# save params
params=("$@")
# do what i want to do
do_something
# launch git
git "${params[@]}"
myhackyscript.sh
debe ser almacenado en un $PATH
carpeta como /usr/bin/
Puede definir una función de shell que invoque un script personalizado que luego pasa cosas al comando git original:
git() {
case $1 in
commit)
echo "WUFF"
;;
esac
\git "$@"
}
Poner esta función en uno de los archivos RC de su shell (por ejemplo, ~/.profile
o /etc/profile
en el caso de sh / bash / ksh shells) estará disponible después del siguiente inicio de sesión. Por supuesto, puedes obtener mucho más elaboare que esto. Además, es posible que desee echar un vistazo a la git-sh-setup(1)
y git-rev-parse(1)
páginas de manual, en particular la sección sobre parseopt
.
source ~/.profile
para actualizar el shell actual con la nueva función,
~/.bashrc
será leído. source ~/.bashrc
estarán a prueba de balas para actualizar el shell actual con los cambios.
Si creas un script ls
en un lugar como ~/bin
que se encuentra en el path
antes de /bin/ls
su script será ejecutado en su lugar.
user@wopr /home/user/bin/: $ cat ls
#!/bin/bash
echo "Security Breached!"
# Run original command
/bin/ls "$@"
Ahora al listar archivos el mensaje Security Breached!
siempre se muestra.
user@wopr /home/user/bin/: $ ls
Security Breached!
ls file.sh file myscript.sh
user@wopr /home/user/bin/: $ which ls
/home/user/bin/ls
Debe tener en cuenta los directorios en su path
y quién puede escribir en esos directorios.