Mon objectif est d'inclure dans un fichier zip ce qui équivaut à un raccourci, au lieu de dire à mes clients d'ouvrir Terminal et d'exécuter un script shell.
Mon déployable ressemble essentiellement à ceci:
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
Script dans run.sh
:
#!/bin/sh
java -jar app.jar
Il y a beaucoup plus dans le répertoire; il suffit de dire que j'ai besoin d'exécuter le script à partir du répertoire Livrable car j'ai besoin d'accéder aux chemins qui s'y rapportent. Cependant, je ne peux pas garantir où un client va ouvrir Deliverable.zip
(peut être le répertoire personnel, peut être directement dans le répertoire Téléchargements, etc.)
J'ai trouvé cela qui décrit comment créer un nouveau flux de travail dans Automator, puis l'enregistrer en tant qu'application pour lancer un script shell. 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 expliquant comment utiliser applescript pour basculer dans le répertoire courant; il y a une "action" AppleScript dans l'automate; J'ai donc créé un nouveau workflow avec cela et l'ai enregistré en tant qu'application. Voilà à quoi ça 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 mal ici?