Mon objectif est d'inclure dans un fichier zip ce qui revient à un raccourci, au lieu de dire à mon ou mes clients d'ouvrir Terminal et d'exécuter un script.
Mon déployable ressemble essentiellement à ceci :
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
script en run.sh
:
#!/bin/sh
java -jar app.jar
Il y a beaucoup plus dans le répertoire ; il suffit de dire que je dois exécuter le script à partir du répertoire Livrable puisque j'ai besoin d'accéder à des chemins relatifs à celui-ci. Cependant, je ne peux pas garantir l'endroit où un client va ouvrir Deliverable.zip
(il peut s'agir du répertoire personnel, du répertoire des téléchargements, etc.)
J'ai trouvé ce qui décrit comment créer un nouveau flux de travail dans Automator, puis l'enregistrer comme une application pour lancer un script. J'ai essayé de faire ça pour envelopper run.sh
mais il dit qu'il ne peut pas trouver run.sh
.
Quelqu'un m'a suggéré d'utiliser applescript et m'a également envoyé un lien sur la façon d'utiliser applescript pour passer dans le répertoire courant ; il y a une "action" applescript dans automator ; j'ai donc créé un nouveau flux de travail avec cela, et je l'ai enregistré comme application. Voici à quoi cela ressemble :
Le code :
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
Et voici l'erreur que j'obtiens lorsque je l'exécute :
Allez, ça devrait être assez simple. Qu'est-ce que je fais de mal ici ?