Dispongo di un flusso di lavoro di Automator e una delle azioni consiste nel clonare un repository. Ecco il codice per l'azione "Esegui script shell". Il comando viene eseguito all'interno della shell di Bash /bin/bash
se questo è importante:
SOURCEDIR="${3/\/Volumes/}"
cd "$2"
REPOURL="[email protected]:$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 .
Ora l'app di Automator funziona correttamente sul mio computer. Il percorso per git sulla mia macchina (A Macbook Pro) è: /usr/bin/git
(credo di aver installato git sulla mia macchina tramite Xcode)
Ma sulla macchina del mio collega (anche un Mac Pro) l'app di Automator fallisce. Infatti, l'output del file log.txt dice: bash: git: command not found
Ora sulla macchina di mio collaboratore il percorso di Git è: usr/local/git/bin
, che, sì, è diverso perché ha installato git attraverso il Google Git Installer per Mac OS X, ma io non credo che dovrebbe avere importanza, perché nello script del comando git non è percorso assoluto per il comando e l'ulteriore più il mio collega di lavoro può essere eseguito git normalmente da uno script Bash, ma quando viene richiamato direttamente dal terminale.
Quindi cosa dà? Perché il flusso di lavoro dell'automazione funziona per me, ma non per il mio collega di lavoro?
Ci deve essere qualcosa di fondamentale su Bash o Unix che non sto capendo qui ma sono perso.