Tengo dos directorios:src
y projects
. Me gustaría evitar ejecutar git ...
a menos que esté específicamente dentro de src
o projects
. ¿Es esto posible?
Respuesta aceptada:
Es difícil evitar que se ejecute el binario, pero para las situaciones típicas existe un método de protección sencillo:
- Usted define una función de shell que sobrescribe el nombre. Obviamente, esto no funcionará en otro shell (también en el de otro usuario).
- Se saca el binario de $PATH y se reemplaza por una secuencia de comandos contenedora. Esto es más seguro pero obviamente causará problemas con las actualizaciones de software (el script se sobrescribe).
La función de shell podría verse así:
git () {
local cwd="$(pwd -P)"
if ! [ "/path/to/src" = "$cwd" -o "/path/to/projects" = "$cwd" ]; then
echo "The current working directory is: '${cwd}'"
echo "git must not be run from here; from src and projects only."
echo "Aborting."
else
command git "[email protected]"
fi
}