5 votos

Instalar el servicio automator a través de la línea de comandos

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

#!/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 todos mis *.workflow y ábrelo. Sin embargo, para open $filename y pide confirmación:

popup

¿Hay alguna forma de añadir --no-prompt o similar para el comando open?

EDITAR:

Estoy usando El Capitan 10.11.3

0 votos

Es posible, pero la versión de OS X que utilices influirá en la aplicación del método.

0 votos

Información actualizada sobre Mac OS. Estoy usando 10.11.3, gracias

0 votos

Esto se puede hacer utilizando AppleScript o Automator creando un paquete de aplicaciones, ya que esto será necesario para permitir que la aplicación controle su ordenador haciendo clic en los botones Instalar y Listo en el cuadro de diálogo Instalador de Servicios. Hacer una aplicación Automator probablemente sería lo más fácil, usando un Run Shell script. Acción y un par de líneas de AppleScript código utilizando osascript añadiendo unas líneas después del open $filename línea. Si usted está interesado voy a crear una respuesta para ello sin embargo yo 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.

2voto

user3439894 Puntos 5883

Si Automator es cerrado, a continuación, abrir Automator y seleccione la Aplicación en virtud de Elegir un tipo de documento, a continuación, haga clic en el Elegir el botón. Si ya está abierto el elija Archivo > Nuevo y seleccione la Aplicación en virtud de Elegir un tipo de documento.

Añadir un Ejecutar el Shell Script de Acción .

Copie y pegue el código de shell tiene actualmente en el Ejecutar el Shell Script de Acción.

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: Usted también debe agregar una adecuada cd línea por encima de la rm -rf ./tempWorkflows de la línea que actualmente tiene en su código, por ejemplo cd /some/directory/path donde es la ruta de acceso de la ubicación de su .workflow ficheros para su procesamiento por parte de su secuencia de comandos.

Guardar la Aplicación Automator como Instalar Automator Servicio. Install Automator Service Siguiente:

Abra Preferencias Del Sistema > Seguridad Y Privacidad > Accesibilidad > Privacidad

Haga clic en el Bloqueo icono para hacer cambios y escriba su contraseña, a continuación, haga clic en el Desbloqueo de botón.

Usuario el [+] para agregar la Instalación de Automator Servicio o arrastrar y soltar el paquete de la aplicación en la ventana. Accessibility Esto va a permitir la Instalación de Automator Servicio de aplicación para que se ejecute su código de shell y el uso de la AppleScript código haga clic en el Instalar el botón y la posterior Realizado en el botón de Servicio de Instalador de cuadro de diálogo en el proceso de instalación de sus Servicios.

-1voto

Goro Puntos 264

Al "Abrir 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 tu sistema.

Supongo que si en lugar de abrir el archivo con Automator Runner.app ejecutará el flujo de trabajo de Automator y no ofrecerá instalar el Servicio.

Cambia tu open $filename para abrir el archivo con una aplicación específica en lugar de la predeterminada.

Open With menu

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