2010-11-18 15 views
10

Quiero agregar una opción al menú contextual del buscador que llama a hg add %1 con% 1 como la ruta completa del archivo seleccionado en el buscador.
Por supuesto, hay más casos útiles que se me ocurren para agregar al menú contextual.
¿Existe una manera simple de hacerlo que no implique la instalación de software o codificación de terceros en un lenguaje compilado y la creación de complementos binarios?
¿Le gusta crear un script con el editor de scripts y soltarlo en /Library/Contextual Menu Items/?Agregar una secuencia de comandos al menú contextual del buscador de MacOS

+1

Bueno ... Abrir Automator, cree un flujo de trabajo personalizado. De 'Biblioteca', seleccione' Utilidades', luego arrastre y suelte 'Ejecutar script de shell' en el flujo de trabajo. Establezca 'Pass input' en' As arguments'. Escriba en su script: 'hg add $ 1'. Luego menú Archivo-> Guardar un complemento, especifique el nombre, elija el complemento para Buscador, Guardar. Haga clic derecho en el archivo, elija Más-> Autamator-> y disfrute. Pero no hay nada relacionado con la programación aquí ... – khachik

+0

@khachik: Todavía está relacionado con el desarrollo. Debe hacer su comentario una respuesta. –

+0

@Philip Ok, en realidad es una respuesta ... – khachik

Respuesta

15

Abra Automator, cree un flujo de trabajo personalizado. Desde Library, elija Utilites, luego arrastre y suelte Run shell script en el flujo de trabajo. Establezca Pass input en As arguments. Escriba en su secuencia de comandos: hg add $1. Luego File menu->Save as a Plugin, especifique el nombre, elija plugin for Finder, Save. Haga clic derecho en el archivo, elija More->Autamator-><PLUGIN_NAME>.

+0

Guau, gran explicación.Aunque no pude encontrar cómo guardar como complemento, las únicas opciones que obtengo son Flujo de trabajo o Aplicación. Estoy ejecutando OS 10.6.4 – Petruza

+0

No hay ningún elemento 'Guardar como un complemento ...' en el menú 'Archivo' en Automator? Estoy ejecutando Leopard, y está allí ... Creo que debería haber algo equivalente, incluso si no tiene 'save as a plugin'. – khachik

+1

Bueno, he descubierto que ahora en 10.6 se llama servicios, pero es lo mismo. Logré crearlo, funciona bien, gracias! ahora el problema es que necesito 'cd' para la ruta del archivo% 1, ¿te importaría decirme cómo obtener esto? ¡Gracias! – Petruza

17

Los pasos han cambiado para Snow Leopard/10.6 + desde la respuesta correcta de @ khachik. Para asegurarse de que su claro, aquí están los pasos:

  • abierto Automator
  • crear un nuevo Service
  • Ajuste los dos mejores menús desplegables en la parte superior de "servicio recibe seleccionados files or folders en Finder.app"
  • Establezca la entrada Pasar a as arguments
  • Escriba su secuencia de comandos (vea más abajo para eso).
  • Guardar y seleccione el nombre del servicio

Su ventana de Automator debe ser similar al siguiente: : screenshot

Ahora puede seleccionar varios archivos en Finder y luego ejecutar su servicio de los Servicios submenú .

Para su secuencia de comandos, creo que desea lo siguiente. Esto cambia al directorio de cada argumento y luego lo agrega. Estoy usando un bucle for porque Finder le permite seleccionar múltiples archivos en diferentes carpetas (que podrían estar en diferentes repositorios).

for f in "[email protected]" 
do 
    cd $(dirname $f); hg add $f 
done 

si se supone que todos están en el mismo repositorio que podría hacer esto:

cd $(dirname $1); hg add [email protected] 
+1

Automator ejecuta la secuencia de comandos en un entorno que establece la ruta a lo que se define en/etc/paths (y tal vez algo más) PERO no llama a su ~/.bash_profile ---> Entonces, en caso de que tenga alguna ruta definida necesario para ubicar el script/programa que desea ejecutar desde su script de Automator, ya sea que tenga que usar la ruta completa o agregar "source ~/.bash_profile" (sin comillas) como la primera línea de su script – georg

Cuestiones relacionadas