Tujuan saya adalah untuk memasukkan dalam file zip apa yang merupakan jalan pintas, daripada memberi tahu pelanggan saya untuk membuka Terminal dan menjalankan skrip shell.
Pada dasarnya saya bisa digunakan seperti ini:
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
Script dalam run.sh
:
#!/bin/sh
java -jar app.jar
Ada banyak lagi di direktori; Cukuplah untuk mengatakan saya perlu menjalankan skrip dari direktori Deliverable karena saya perlu mengakses jalur relatif terhadapnya. Namun, saya tidak dapat menjamin di mana pelanggan akan membuka Deliverable.zip
(bisa direktori home, bisa langsung di direktori Downloads, dll.)
Saya menemukan ini yang menjelaskan cara membuat alur kerja baru di Automator, lalu simpan sebagai aplikasi untuk meluncurkan skrip shell. Saya mencoba melakukan itu untuk membungkus run.sh
tetapi katanya tidak dapat menemukan run.sh
.
Seseorang menyarankan saya menggunakan applescript dan juga mengirimi saya tautan bagaimana cara menggunakan applescript untuk beralih ke direktori saat ini; ada "aksi" applescript di automator; jadi saya membuat alur kerja baru dengan itu, dan menyimpannya sebagai aplikasi. Seperti inilah tampilannya:
Kode:
on run {input, parameters}
tell application "Finder"
set current_path to container of (path to me) as alias
end tell
do shell script "java -jar app.jar"
return input
end run
Dan ini adalah kesalahan yang saya dapatkan ketika saya menjalankannya:
Ayo, ini seharusnya cukup sederhana. Apa yang saya lakukan salah di sini?