2 votos

¿Cómo desplegar el flujo de trabajo de Automator en los clientes?

Para un caso de uso específico, he desarrollado un flujo de trabajo de Acción de Carpeta con Automator. Cuando se crea un archivo en una carpeta 'abc', el flujo de trabajo se pone en marcha y ejecuta un shell script.

Este flujo de trabajo debe instalarse/desplegarse en muchos equipos cliente en entornos corporativos. Mientras que los usuarios finales podrían recibir las instrucciones de instalación, este enfoque es propenso a errores, por lo que estoy buscando un enfoque mejor.

Soy consciente de que la definición del flujo de trabajo real se almacena en:

/Users/[user]/Library/Workflows/Applications/Folder Actions/*

Aunque el archivo *.workflow/Contents/document.wflow incluye el folderActionFolderPath, copiar el flujo de trabajo de un cliente a otro no funciona, ya que la acción de carpeta no se habilita. Todavía tiene que ser habilitado en el Finder (carpeta de inicio --> clic derecho en la carpeta --> seleccionando 'Folder Action Setup...' del menú desplegable). No he encontrado una manera de automatizar este paso de configuración desde la línea de comandos.

¿Cómo puede un administrador del sistema instalar un flujo de trabajo de Acción de Carpeta en varias máquinas cliente?

0 votos

Interesante caso de automatización de una automatización... ¿Puedo preguntar cuál es su objetivo final? Tal vez podamos sugerir otro enfoque para todo su objetivo.

1voto

wch1zpink Puntos 11

Si realmente quieres que el proceso sea "a prueba de idiotas", esta es la opción. En script Editor.app, crea un nuevo documento en blanco e inmediatamente ve y guárdalo como aplicación (yo guardé el mío como "JIMZ Attach Folder Action.app")

El propósito de esta aplicación sería copiar el archivo de flujo de trabajo de Automator (que se incluirá dentro de la carpeta "Recursos" de esta nueva aplicación que acabas de crear en scriptEditor ) que quieres que se adjunte a la carpeta "ABC" en el ordenador de cualquier usuario, a la carpeta "Folder Actions" necesaria en ese ordenador. Si la carpeta "ABC" no existe en el ordenador de destino, se creará. Para los fines de este proyecto, la ubicación de la carpeta "ABC" sería en el escritorio del ordenador de destino.

Pegue el siguiente código en su nueva aplicación AppleScript en blanco que acaba de crear.

property nameOfTriggerFolder : "ABC"
property pathToFolderActions : ((path to workflows folder as text) & "Applications:Folder Actions:")
property attachFolderActionTo : (path to desktop as text) & nameOfTriggerFolder

set resourceName to "ABC Folder Action.scpt"
set folderActionScript to ((path to me as string) & "Contents:Resources:" & resourceName) as string

tell application "Finder"
    if not (exists of folder attachFolderActionTo) then
        make new folder at (path to desktop) with properties {name:nameOfTriggerFolder}
    end if
    duplicate file folderActionScript to folder pathToFolderActions with replacing
end tell

tell application "Folder Actions Setup"
    activate
    try
        set addedFolderAction to make new folder action with properties {name:nameOfTriggerFolder, path:attachFolderActionTo}
    end try
    try
        delay 0.5
        tell addedFolderAction to make new script with properties {name:resourceName, path:(pathToFolderActions & resourceName)}
    end try
    if not folder actions enabled then
        set folder actions enabled to true
    end if
end tell

A continuación, siga adelante y arrastre su archivo de flujo de trabajo de Automator desde la aplicación Finder directamente a la carpeta de recursos en el editor de script (como se muestra en la animación siguiente)

enter image description here

Compila y guarda la aplicación en el editor de script. Ahora puedes distribuir esta app a quien quieras. Cuando esta aplicación se inicie en cualquier ordenador de destino, copiará el archivo de flujo de trabajo de Automator directamente a la carpeta donde debe ubicarse. También añadirá la carpeta "ABC" a la lista de carpetas habilitadas en el Folder Actions Setup.app y adjuntará el script o archivo de flujo de trabajo a esa carpeta

0 votos

¿cómo se guardan los gifs?

0 votos

@MateusRibeiro Yo sólo uso la grabación de pantalla incorporada de Mac para crear una grabación de vídeo de mis acciones en pantalla. Luego cargo ese archivo de vídeo en GIF Brewery 3 para hacer mis ediciones y guardar como un .gif gifbrewery.com

0voto

qarma Puntos 71

De forma similar a la sugerencia de @wch1zpink, yo consideraría formular el Carpeta Acción como un script en lugar de un Automatizador flujo de trabajo, que sería algo así:

on adding folder items to directory after receiving fs

    do shell script "..."

end adding folder items to

Guardando esto como un .scpt o .applescript y moverlo a ~/Library/Scripts/Folder Action Scripts , puedes entonces scribir la creación de acciones de carpeta y adjuntarlas a las carpetas así:

use sys : application "System Events"

property name : "abc"
property path : "/path/to/abc"
property folder action : a reference to folder action named (my name)
property script : "my folder action script.applescript"
property folder : a reference to Folder Action scripts folder
property file : a reference to the file named (my script) in my folder

set folder actions enabled to true

if not (my file exists) then return open my folder
if my folder action exists then return my folder action's scripts

make new folder action with properties {name:my name, path:my path}
tell my folder action to make new script with properties ¬
    {name:my file's name, POSIX path:my file's POSIX path}

set my folder action's enabled to true
set my folder action's scripts's enabled to true

donde "my folder action script.applescript" es el nombre de su acción de carpeta guardada script; y las propiedades name y path representan el nombre y la ruta de su carpeta supervisada.

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