J'ai un flux de travail Automator et l'une des actions consiste à cloner un référentiel. Voici le code de l'action 'Run Shell script'. La commande est exécutée dans le shell Bash /bin/bash
si cela compte :
SOURCEDIR="${3/\/Volumes/}"
cd "$2"
REPOURL="bob@somedomain.com:$SOURCEDIR"
WORKINGDIR="$1"
# Capture any errors with cloning process in log file
git clone "$REPOURL" "$WORKINGDIR" &> ./log.txt
// For debugging
echo "exit code: $?"
echo "PPID: $PPID"
open .
Maintenant, l'application Automator fonctionne bien sur mon ordinateur. Le chemin d'accès à git sur ma machine (un Macbook Pro) est le suivant : /usr/bin/git
(Je crois avoir installé git sur ma machine via Xcode)
Mais sur la machine de mon collègue (également un Mac Pro), l'application Automator échoue. En fait, la sortie du fichier log.txt dit : bash: git: command not found
Maintenant, sur la machine de mon collègue, le chemin vers git est le suivant : usr/local/git/bin
qui, oui, est différent parce qu'il a installé git par le biais du Google Git Installer pour Mac OS X, mais je ne pensais pas que cela devait avoir de l'importance parce que dans le script la commande git n'est pas le chemin absolu vers la commande et de plus mon collègue peut exécuter git normalement à partir d'un script Bash mais lorsqu'il est invoqué directement à partir du Terminal.
Alors, que se passe-t-il ? Pourquoi le flux de travail de l'automate fonctionne-t-il pour moi mais pas pour mon collègue ?
Il doit y avoir quelque chose de fondamental dans Bash ou Unix que je ne comprends pas, mais je suis perdu.