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

2

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

Este flujo de trabajo se debe instalar / implementar en muchas máquinas cliente en entornos corporativos. Si bien los usuarios finales pueden recibir las instrucciones de configuración, este enfoque es propenso a errores, por lo que estoy buscando un mejor enfoque.

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

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

Si bien * .workflow / Contents / document.wflow sí incluye la carpetaActionFolderPath, copiar el flujo de trabajo de un cliente a otro no funciona porque la Acción de carpeta no se habilita. Todavía debe habilitarse en el Finder (Carpeta de inicio - > haga clic con el botón derecho en la carpeta - > Seleccionando 'Configuración de acción de carpeta ...' en el menú desplegable). No he encontrado una forma 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?

    
pregunta PieterB 20.11.2018 - 16:51

2 respuestas

1

Si realmente quiere "probar a prueba de idiotas" el proceso, aquí está la opción. En Script Editor.app, cree un nuevo documento en blanco, luego vaya inmediatamente y guárdelo como una aplicación (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 acaba de crear en el Editor de secuencias de comandos) que desea adjuntar a la carpeta "ABC" en cualquier computadora del usuario, a la carpeta de "Acciones de carpeta" necesaria en esa computadora. Si la carpeta "ABC" no existe en la computadora de destino, se creará. Para los propósitos de este proyecto, la ubicación de la carpeta "ABC" estaría en el escritorio de la computadora 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

Luego continúe y arrastre su archivo de flujo de trabajo Automator desde la aplicación Finder directamente a la carpeta de recursos en el Editor de secuencias de comandos (como se muestra en la animación a continuación)

CompileyguardelaaplicaciónenScriptEditor.Ahorapuedesdistribuirestaaplicaciónaquienquieras.Cuandoestaaplicaciónseinicieahoraencualquiercomputadoradedestino,copiaráelarchivodeflujodetrabajodeAutomatordirectamenteenlacarpetadondesedebeubicar.Tambiénagregarálacarpeta"ABC" a la lista de carpetas habilitadas en la carpeta de configuración de acciones.app y adjuntará la secuencia de comandos o el archivo de flujo de trabajo a esa carpeta

    
respondido por el wch1zpink 21.11.2018 - 00:47
0

Al igual que en la sugerencia de @ wch1zpink, consideraría formular la Acción de carpeta como un script en lugar de un flujo de trabajo Automator , que se vería así:

on adding folder items to directory after receiving fs

    do shell script "..."

end adding folder items to

Guardando esto como un archivo .scpt o .applescript , y moviéndolo a ~/Library/Scripts/Folder Action Scripts , puede crear una secuencia de comandos para la creación de acciones de carpeta y adjuntarlas a carpetas como esta:

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 secuencia de comandos de acción de carpeta guardada; y las propiedades name y path representan el nombre y la ruta a su carpeta monitoreada.

    
respondido por el CJK 24.11.2018 - 03:42

Lea otras preguntas en las etiquetas