Meu objetivo é incluir em um arquivo zip o que equivale a um atalho, em vez de dizer ao (s) cliente (s) para abrir o Terminal e executar um script de shell.
Meu implantável se parece basicamente com isso:
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
Script em run.sh
:
#!/bin/sh
java -jar app.jar
Há muito mais no diretório; basta dizer que preciso executar o script a partir do diretório Deliverable, pois preciso acessar os caminhos relativos a ele. No entanto, não posso garantir onde um cliente abrirá Deliverable.zip
(pode ser o diretório inicial, o diretório Downloads, etc.)
Descobri isso que descreve como criar um novo fluxo de trabalho no Automator e salvá-lo como um aplicativo para iniciar um script de shell. Eu tentei fazer isso para embrulhar, run.sh
mas ele diz que não pode encontrar run.sh
.
Alguém sugeriu que eu use o AppleScript e também me enviou um link para como usar o AppleScript para alternar para o diretório atual; há uma "ação" do manuscrito no automator; então criei um novo fluxo de trabalho e o salvei como um aplicativo. É assim que se parece:
O código:
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
E este é o erro que recebo ao executá-lo:
Vamos lá, isso deve ser bem simples. O que estou fazendo de errado aqui?