Mi objetivo es incluir en un archivo zip lo que equivale a un acceso directo, en lugar de decirle a mis clientes que abran Terminal y ejecuten un script de shell.
Mi implementable se ve esencialmente así:
$ unzip Deliverable.zip
$ cd Deliverable; ls
app.jar run.sh
Script en run.sh
:
#!/bin/sh
java -jar app.jar
Hay mucho más en el directorio; basta con decir que necesito ejecutar la secuencia de comandos desde el directorio Entregable ya que necesito acceder a las rutas relativas a ella. Sin embargo, no puedo garantizar dónde abrirá un cliente Deliverable.zip
(podría ser el directorio principal, podría encontrarse en el directorio de descargas, etc.)
Encontré esto que describe cómo crear un nuevo flujo de trabajo en Automator, luego guárdelo como una aplicación para iniciar un script de shell. Intenté hacer eso para envolver run.sh
pero dice que no puede encontrar run.sh
.
Alguien me sugirió que usara applecript y también me envió un enlace sobre cómo usar applecript para cambiar al directorio actual; hay una "acción" de Applecript en automator; así que hice un nuevo flujo de trabajo con eso, y lo guardé como una aplicación. Esto es lo que parece:
Elcódigo:
onrun{input,parameters}tellapplication"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 recibo cuando lo ejecuto:
Vamos, esto debería ser bastante simple. ¿Qué estoy haciendo mal aquí?