मेरे पास एक ऑटोमेटर वर्कफ़्लो है और एक क्रिया एक रिपॉजिटरी को क्लोन करने के लिए है। यहां 'रन शैल स्क्रिप्ट' कार्रवाई के लिए कोड है। आदेश बैश शेल के भीतर चलाया जाता है /bin/bash
यदि वह मायने रखता है:
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 .
अब ऑटोमेकर ऐप मेरी मशीन पर ठीक चलता है। मेरी मशीन पर गिट की राह (ए मैकबुक प्रो) है: /usr/bin/git
(मेरा मानना है कि मैंने अपनी मशीन पर एक्सकोड के माध्यम से गिट स्थापित किया है)
लेकिन मेरे सह-कार्यकर्ता की मशीन पर (इसके अलावा एक मैक प्रो) ऑटोमेकर ऐप विफल हो जाता है। वास्तव में, log.txt फ़ाइल का आउटपुट कहता है:bash: git: command not found
अब मेरे सह-कार्यकर्ता की मशीन पर गिट का रास्ता है: usr/local/git/bin
जो, हां, अलग है क्योंकि उन्होंने मैक ओएस एक्स के लिए Google गिट इंस्टालर के माध्यम से गिट स्थापित किया था, लेकिन मुझे नहीं लगा कि स्क्रिप्ट के कारण यह काम करना चाहिए। कमांड के लिए निरपेक्ष पथ नहीं है और आगे मेरे सहकर्मी बैश स्क्रिप्ट से सामान्य रूप से गिट चला सकते हैं, लेकिन जब टर्मिनल से सीधे आह्वान किया जाता है।
तो क्या देता है? ऑटोमेटर वर्कफ़्लो मेरे लिए क्यों नहीं बल्कि मेरे सहकर्मी के लिए काम करता है?
बैश या यूनिक्स के बारे में कुछ मौलिक होना चाहिए जिसे मैं यहां नहीं समझ रहा हूं लेकिन मैं हार गया हूं।