4 votos

OS X: Especificación de la línea de comandos personalizada del programa como aplicación para abrir archivos al hacer doble clic

Soy principalmente un usuario de Linux que recientemente adquirió un Macbook Air y actualmente estoy tratando desesperadamente de averiguar si hay un equivalente para los archivos de definición de escritorio de Linux, donde se puede definir una aplicación por su invocación de línea de comandos, con un marcador de posición opcional para el archivo que X11 pasará a ella cuando un archivo de tipo de archivo asociado con esa aplicación se hace doble clic.

Por ejemplo, en Linux, puedo establecer .txt archivos que se abren con una invocación específica en la línea de comandos de emacsclient así:

emacsclient -c -a "" %f

donde %f es el marcador de posición que será reemplazado por la ruta del archivo real sobre el que se hace doble clic. (En general, los gestores de archivos de Linux permiten especificar esta línea de comandos en la ventana de información del archivo).

¿Hay alguna forma sencilla de conseguirlo en OS X? He intentado jugar con AppleScript, así como buscar una solución en Google, pero sin éxito. Probablemente todavía tengo que ampliar mis conocimientos y vocabulario relacionados con la tecnología de Apple, para poder hacer las preguntas correctas con las palabras adecuadas -- así que por favor, tened paciencia conmigo...

1voto

aquinas Puntos 10517

Que yo sepa, no hay nada que haga que se ejecute automáticamente cualquier script en doblescript (es muy probable que me equivoque). La mejor solución que he encontrado es Automator. Está preinstalado. Quieres crear un servicio, que colocará en un menú contextual (haciendo clic con el botón derecho en el archivo). Para sus acciones, usted quiere encontrar la acción "Ejecutar Shell script". Desde ahí, puedes hacer que reciba información del Finder, como rutas de archivos y directorios. Si pasas la entrada a stdin , la variable que utilizará en el shell script es $@ .

if [[ ! -d "$@" ]]
then
    emacsclient -c -a "" $@;
    exit
fi

No sé si ese script es del todo correcto, pero debería ponerte en el camino correcto.

1voto

artvolk Puntos 199

AppleScript es tu amigo.

En el  Editor de AppleScript , crea un nuevo script, con el siguiente código fuente :

(* This script is destined to be saved as an application droplet. It will process the items dropped onto it. *)

-- This routine processes the dropped item(s)
on open theDroppedItems
  repeat with i from 1 to the count of theDroppedItems
    set aDroppedItem to item i of theDroppedItems
    processItem(aDroppedItem)
  end repeat
end open

-- This routine processes an item
on processItem(anItemToProcess)
  set pathUnix to POSIX path of anItemToProcess
  set pathUnixQuoted to quoted form of pathUnix
  -- Here you make your shell command !
  set commandToRun to "cat " & pathUnixQuoted
  do shell script commandToRun
end processItem

Para el comando shell, adapte el commandToRun a sus deseos.

Guarde el script. En el Guardar  diálogo :

  • Nombra el script  OpenItems .
  • Coloca el script en algún lugar que te guste ; por ejemplo, puedes colocar el script en  /Aplicaciones .
  • Elija el formato :  Aplicación .
  • Deje las dos casillas sin marcar.

En el código fuente, mira la construcción  on open theDroppedItems . Este tipo de AppleScript se llama una gota . Mira el icono de la aplicación  OpenItems que has salvado. La gran flecha que aparece en él indica que se trata de un droplet. Significa que la aplicación acepta los elementos que se dejan caer sobre ella.

Ahora, arrastra y suelta el archivo que quieras en la aplicación  OpenItems . Esto lanzará el comando con su archivo.

El siguiente paso es asociar el o los archivos al droplet. Seleccione el archivo que desee y pulse  Apple I  (   I  ) para obtener información. En  Abrir con , elija la aplicación  OpenItems . Esto asociará el archivo con el droplet. Así, al hacer doble clic en el archivo, éste se abrirá con el droplet  OpenItems y se ejecutará el comando shell para el archivo. Si quiere que esto ocurra con todos los archivos del mismo tipo, haga clic en el botón  Cambia todo

He probado esta solución en Mavericks. Funciona.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X