Existe un tipo de archivo llamado "netCDF". Mi objetivo es poder hacer doble clic en un archivo netCDF en Finder y ver la salida de texto de un comando de CLI al que se le da el nombre del archivo.
Especificaciones: Hay un comando de línea de comandos que muestra el contenido de un archivo netCDF:
$ ncdump -h tuarchivo.nc
Este comando muestra el contenido del archivo netCDF en la terminal actual.
¿Cómo puedo ver la misma salida cuando hago doble clic en el archivo en Finder?
Editar: Lo siguiente es una descripción de un enfoque fallido.
He avanzado un poco hacia una solución.
Siguiendo este hilo
¿Cómo hacer una aplicación Mac OS X .app con un script de shell?
He podido crear una "app" de macOS que en realidad es un script de shell:
#!/bin/sh
/usr/local/bin/ncdump -h "$@"
Hasta ahora, he podido verificar que puedo invocar esta "app" desde Finder y que en realidad se ejecuta el script de shell anterior. Sin embargo, descubrí que el script de shell no recibe el nombre de archivo como argumento de línea de comando. (Puedes ver lo que está sucediendo modificando la línea a /usr/local/bin/ncdump -h "$@" > $HOME/tmp/logfile.txt 2>&1
)
Entonces, tengo dos preguntas específicas
-
¿Cómo puede un script de shell (como app) obtener el nombre de archivo cuando se invoca desde Finder?
-
¿A qué aplicación GUI debería enviar su stdout y cómo?
0 votos
¿Qué sucede si lo ejecutas de esta manera:
/RUTA/A/MyApp.app/Contents/MacOS/MyApp
(sinopen -a
)?0 votos
"¿Qué sucede si lo ejecutas así . . . (sin abrir -a)" . . . Imprime la salida en la terminal actual. ¿Eso responde tu pregunta?
0 votos
¿Sí. Entonces hay alguna razón para ejecutar la aplicación con
open -a
en lugar de ejecutarla directamente?0 votos
" Entonces, ¿hay alguna razón para ejecutar la .app con open -a en lugar de ejecutarla directamente? Mi objetivo es invocar el script de shell haciendo doble clic en el archivo en Finder y ver la salida del comando."
0 votos
El problema con esta pregunta es que no aborda dónde le gustaría al OP que vaya su salida. ¿Debería ir a un archivo, a un tty, a la consola... adónde? Me pregunto si el OP se da cuenta de que su objetivo podría lograrse simplemente invocando la "app" desde la línea de comandos (Terminal.app).
0 votos
@Seamus Gracias por señalar que mi publicación inicial no estaba clara. He editado mi pregunta para que (espero) sea claro lo que quiero lograr. Para responder directamente a tu pregunta, quiero enviar la salida a una ventana separada. No, mi objetivo no se puede lograr simplemente invocando la aplicación desde la línea de comandos. Mi objetivo final es, en Finder, hacer clic en un archivo, al cual estará asociada mi "aplicación".
0 votos
@Seamus Terminé reescribiendo por completo la pregunta. Espero que esta versión sea clara.
0 votos
Es mucho más claro ahora.