Instalar el servicio de automatización a través de la línea de comandos

Me gustaría automatizar el flujo de instalación de mi Mac para servicios. El siguiente es mi guión:

#!/bin/sh
rm -rf ./tempWorkflows
mkdir tempWorkflows
for filename in ./*.workflow; do
    cp -R "$filename" ./tempWorkflows/"$filename"
done
for filename in ./tempWorkflows/*.workflow; do
    open $filename
done
rm -rf ./tempWorkflows

Básicamente, copia todo mi archivo *.workflowy ábrelo. Sin embargo, para open $filename, solicita y solicita una confirmación:

surgir

¿ Hay alguna forma de agregar --no-promptuna bandera similar para el comando de apertura?

EDITAR:

Estoy usando El Capitán 10.11.3

Es factible, sin embargo, dependiendo de la versión de OS X que esté ejecutando, influirá en la implementación del método.
Información actualizada de Mac OS. estoy usando 10.11.3, gracias
Esto se puede hacer usando AppleScript o Automator creando un paquete de aplicaciones, ya que esto será necesario para permitir que la aplicación controle su computadora haciendo clic en los botones Instalar y Listo en el cuadro de diálogo Instalador del servicio. Hacer una aplicación de Automator probablemente sería más fácil, usando una acción Ejecutar script de Shell y un par de líneas de código AppleScript agregando osascriptalgunas líneas después de la open $filenamelínea. Si está interesado, crearé una respuesta, sin embargo, no tengo OS X 10.11, aunque esto funciona en OS X 10.10, también debería funcionar en OS X 10.11. Hágamelo saber.
Por cierto, debe tener comillas $filenameen open "$filename"caso de que alguno de sus archivos de Automator Services .workflowtenga espacios en los nombres.

Respuestas (2)

Si Automator está cerrado, abra Automator y seleccione Aplicación en Elija un tipo para su documento , luego haga clic en el botón Elegir . Si ya está abierto, elija Archivo > Nuevo y seleccione Aplicación en Elija un tipo para su documento .

Agregue una acción Ejecutar script de Shell.

Copie y pegue el código de shell que tiene actualmente en la acción Ejecutar script de Shell .

Agregue las siguientes líneas de código después de:open $filename

sleep 1
osascript -e 'tell application "System Events" to click button "Install" of window "Service Installer" of process "Automator"'
sleep 1
osascript -e 'tell application "System Events" to click button "Done" of window "Service Installer" of process "Automator"'

Nota: también debe agregar una cdlínea apropiada arriba de la rm -rf ./tempWorkflowslínea que tiene actualmente en su código , por ejemplo cd /some/directory/path, donde está el nombre de ruta de la ubicación donde .workflowse encuentran sus archivos para que los procese su secuencia de comandos .

Guarde la aplicación Automator como Install Automator Service . Próximo:Instalar el servicio de Automator

Abra Preferencias del sistema > Seguridad y privacidad > Accesibilidad > Privacidad

Haga clic en el icono de bloqueo para realizar cambios y escriba su contraseña, luego haga clic en el botón Desbloquear .

Utilice el [+] para agregar el servicio Install Automator o arrastre y suelte el paquete de aplicaciones en la ventana. AccesibilidadEsto ahora permitirá que la aplicación Install Automator Service ejecute su código de shell y use el código AppleScript para hacer clic en el botón Instalar y luego en el botón Listo en el cuadro de diálogo Instalador de servicios en el proceso de instalación de sus Servicios .

Cuando "Abre con..." un servicio de Automator, la aplicación predeterminada para abrir el archivo es Automator Installer.app.

Esta aplicación ofrece instalar el Servicio y mueve el archivo al directorio de Servicios de su sistema.

Supongo que si, en cambio, abre el archivo con Automator Runner.appél, se ejecutará el flujo de trabajo de Automator y no se ofrecerá instalar el Servicio.

Cambie su open $filenamepara abrir el archivo con una aplicación específica en lugar de la predeterminada.

Abrir con menú

¿Cómo puede el OP "Cambiar su $ nombre de archivo abierto para abrir el archivo con una aplicación específica"?