Saya memiliki alur kerja Automator dan salah satu tindakannya adalah mengkloning repositori. Berikut kode untuk tindakan 'Jalankan Shell Script'. Perintah dijalankan dalam Bash shell /bin/bash
jika itu penting:
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 .
Sekarang Aplikasi Automator berjalan dengan baik di mesin saya. Path ke git di komputer saya (A Macbook Pro) adalah: /usr/bin/git
(Saya yakin saya menginstal git di komputer saya melalui Xcode)
Tetapi pada mesin rekan kerja saya (Juga Mac Pro) Aplikasi Automator gagal. Bahkan, output dari file log.txt mengatakan:bash: git: command not found
Sekarang di mesin rekan kerja saya jalur untuk git adalah:, usr/local/git/bin
yang, ya, berbeda karena dia menginstal git melalui Pemasang Google Git untuk Mac OS X, tapi saya tidak berpikir itu penting karena dalam skrip perintah git bukan path absolut ke perintah dan lebih jauh rekan kerja saya dapat menjalankan git secara normal dari skrip Bash tetapi ketika dipanggil langsung dari Terminal.
Jadi apa yang menyebabkannya? Mengapa alur kerja automator bekerja untuk saya tetapi tidak untuk rekan kerja saya?
Pasti ada sesuatu yang mendasar tentang Bash atau Unix yang saya tidak mengerti di sini tapi saya bingung.
Untuk solusi yang lebih umum untuk lingkungan bash di automator berbeda dari milik Anda, Anda cukup memuat profil bash pribadi Anda di baris pertama skrip bash automator:
Ini akan membuat path dan variabel lingkungan lain yang biasa Anda gunakan tersedia dari skrip automator Anda.
sumber
Saya memecahkan masalah yang sama dari alur kerja "layanan" yang sama dijalankan pada mesin yang dikonfigurasi berbeda dengan memeriksa apa yang terjadi ketika terminal memulai shell dan akhirnya menambahkan potongan berikut ke atas semua tindakan "Jalankan Shell Script" saya:
Ini mencakup semua kasus yang saya temui sejauh ini.
sumber
Jika Anda ingin Workflow bekerja pada kedua mesin yang memiliki git di lokasi yang berbeda, kemudian tambahkan setiap lokasi ke variabel PATH yang disebutkan patrix, dipisahkan oleh a
:
, seperti yang dijelaskan di sini: https://developer.apple.com/library/mac /documentation/AppleApplications/Conceptual/AutomatorConcepts/Articles/ShellScriptActions.htmlJadi, di bagian paling atas dari Workflow Shell Script Anda, Anda akan menambahkan:
PATH=/usr/bin:/usr/local/bin export PATH
sumber