मेरा लक्ष्य एक ज़िप फ़ाइल में शामिल करना है, जो अपने ग्राहक (ओं) को टर्मिनल खोलने और शेल स्क्रिप्ट चलाने के लिए कहने के बजाय, एक शॉर्टकट को क्या मात्रा देता है।
मेरा तैनाती अनिवार्य रूप से इस तरह दिखता है:
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
इसमें स्क्रिप्ट run.sh
:
#!/bin/sh
java -jar app.jar
निर्देशिका में बहुत अधिक है; पर्याप्त मैं निर्देशिका से स्क्रिप्ट चलाने के लिए की जरूरत है कहने के लिए डिलीवरेबल के बाद से मैं पहुँच पथ यह के सापेक्ष की जरूरत है। हालाँकि, मैं गारंटी नहीं दे सकता कि ग्राहक कहाँ जा रहा है Deliverable.zip
(होम डायरेक्टरी हो सकती है, डाउनलोड डायरेक्टरी में सही हो सकती है, आदि)
मुझे यह मिला जो बताता है कि ऑटोमेटर में एक नया वर्कफ़्लो कैसे बनाया जाए, फिर इसे शेल स्क्रिप्ट लॉन्च करने के लिए एक एप्लिकेशन के रूप में सहेजें। मैंने उसे लपेटने की कोशिश की, run.sh
लेकिन यह कहता है कि यह नहीं मिल सकता है run.sh
।
किसी ने सुझाव दिया कि मैं ऐप्पस्क्रिप्ट का उपयोग करता हूं और मुझे एक लिंक भी भेजा है कि वर्तमान निर्देशिका में स्विच करने के लिए ऐप्पलस्क्रिप्ट का उपयोग कैसे करें; ऑटोमेकर में एक एप्सस्क्रिप्ट "एक्शन" है; इसलिए मैंने इसके साथ एक नया वर्कफ़्लो बनाया, और इसे एक एप्लिकेशन के रूप में सहेजा। यह वही है जो दिखता है:
कोड:
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
और यह त्रुटि है जब मैं इसे चलाता हूं:
चलो, यह बहुत आसान होना चाहिए। मैं यहां क्या गलत कर रहा हूं?