私の目標は、ターミナルを開いてシェルスクリプトを実行するように顧客に指示する代わりに、ショートカットに相当するものをzipファイルに含めることです。
私のデプロイ可能コンポーネントは基本的に次のようになります。
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
のスクリプトrun.sh
:
#!/bin/sh
java -jar app.jar
ディレクトリには他にもたくさんあります。スクリプトの相対パスにアクセスする必要があるため、Deliverableディレクトリからスクリプトを実行する必要があると言えば十分です。ただし、お客様が開く場所は保証できませんDeliverable.zip
(ホームディレクトリである可能性があります。ダウンロードディレクトリなどにある可能性があります)。
私が見つかりました。これをシェルスクリプトを起動するアプリケーションとして保存し、その後、Automatorの中で新しいワークフローを作成する方法について説明しています。私はそれをラップするようにしようとしましたrun.sh
が、それは見つけることができないと言いますrun.sh
。
誰かがapplescriptの使用を提案し、applescriptを使用して現在のディレクトリに切り替える方法へのリンクも送ってくれました。オートマトンにはアップルスクリプトの「アクション」があります。それで新しいワークフローを作成し、アプリケーションとして保存しました。これは次のようになります。
コード:
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
そして、これは私がそれを実行するときに私が得るエラーです:
おいおい、これはかなりシンプルなはずだ。ここで何が間違っているのですか?