Bir Automator iş akışı var ve eylemlerden biri bir havuzu klonlamaktır. İşte 'Kabuk Betiğini Çalıştır' eyleminin kodu. Aşağıdaki durumlarda komut Bash kabuğunda çalıştırılır /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 .
Şimdi Automator Uygulaması makinemde iyi çalışıyor. Makinemde git (Macbook Pro) yolu: /usr/bin/git
(Xcode aracılığıyla makineme git kurduğuma inanıyorum)
Ancak iş arkadaşımın makinesinde (Ayrıca bir Mac Pro) Automator Uygulaması başarısız oluyor. Aslında, log.txt dosyasının çıktısı şöyle der:bash: git: command not found
Şimdi iş arkadaşımın makinesinde git yolu: usr/local/git/bin
Evet, farklı, çünkü Mac OS X için Google Git Installer üzerinden git'i yükledi, ancak komut dosyasında git komutu nedeniyle bunun önemli olduğunu düşünmüyordum komutun mutlak yolu değildir ve dahası iş arkadaşım git'i bir Bash betiğinden normal olarak çalıştırabilir, ancak doğrudan Terminal'den çağrıldığında çalışabilir.
Öyleyse ne veriyor? Automator iş akışı benim için neden çalışıyor ancak iş arkadaşım için çalışmıyor?
Bash veya Unix hakkında burada anlamadığım ama kaybolduğum temel bir şey olmalı.