Mi objetivo es incluir en un archivo zip lo que equivale a un acceso directo, en lugar de decirles a mis clientes que abran Terminal y ejecuten un script de shell.
Mi despliegue esencialmente se ve así:
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
Guión en run.sh
:
#!/bin/sh
java -jar app.jar
Hay mucho más en el directorio; basta con decir que necesito ejecutar el script desde el directorio Entregable ya que necesito acceder a las rutas relativas a él. Sin embargo, no puedo garantizar dónde se abrirá un cliente Deliverable.zip
(podría ser el directorio de inicio, podría estar justo en el directorio de Descargas, etc.)
Encontré esto que describe cómo crear un nuevo flujo de trabajo en Automator, luego guardarlo como una aplicación para iniciar un script de shell. Traté de hacer eso para envolver run.sh
pero dice que no puede encontrar run.sh
.
Alguien sugirió que usara AppleScript y también me envió un enlace sobre cómo usar Applecript para cambiar al directorio actual; hay una "acción" de applecript en el automatizador; así que hice un nuevo flujo de trabajo con eso y lo guardé como una aplicación. Así es como se ve:
El 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
Y este es el error que obtengo cuando lo ejecuto:
Vamos, esto debería ser bastante simple. ¿Qué estoy haciendo mal aquí?