Come distribuire il flusso di lavoro di Automator ai client?

2

Per un caso d'uso specifico, ho sviluppato un flusso di lavoro di Folder Action con Automator. Quando un file viene creato in una cartella 'abc', il flusso di lavoro viene eseguito ed eseguito uno script di shell.

Questo flusso di lavoro deve essere installato / implementato su molte macchine client negli ambienti aziendali. Mentre agli utenti finali potrebbero essere fornite le istruzioni di installazione, questo approccio è soggetto a errori, quindi sto cercando un approccio migliore.

Sono consapevole che la definizione del flusso di lavoro effettiva viene archiviata in:

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

Sebbene * .workflow / Contents / document.wflow includa folderActionFolderPath, la copia del flusso di lavoro da un client a un altro non funziona poiché l'Azione cartella non viene abilitata. Deve comunque essere abilitato nel Finder (cartella Home - > fare clic con il tasto destro sulla cartella - > selezionando "Impostazione Azione cartella ..." dal menu a discesa). Non ho trovato un modo per automatizzare questo passaggio di configurazione dalla riga di comando.

In che modo un amministratore di sistema può installare un flusso di lavoro di azioni cartella su più macchine client?

    
posta PieterB 20.11.2018 - 16:51
fonte

2 risposte

1

Se vuoi veramente "provare l'idiota" del processo, ecco l'opzione. In Script Editor.app, crea un nuovo documento vuoto, quindi vai immediatamente e salvalo come applicazione (ho salvato il mio come "JIMZ Attach Folder Action.app")

Lo scopo di questa applicazione è copiare il file del flusso di lavoro di Automator (che sarà incluso nella cartella "Risorse" di questa nuova applicazione appena creata in Script Editor) che si desidera allegare alla cartella "ABC" su qualsiasi computer dell'utente, fino alla cartella "Cartella azioni" necessaria su quel computer. Se la cartella "ABC" non esiste sul computer di destinazione, verrà creata. Per gli scopi di questo progetto, la posizione della cartella "ABC" si trova sul desktop del computer di destinazione.

Incolla questo codice seguente nella tua nuova app vuota di AppleScript appena creata.

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

Quindi vai avanti e trascina il file del flusso di lavoro di Automator dall'app Finder direttamente alla cartella delle risorse in Script Editor (come mostrato nell'animazione sottostante)

Compilaesalval'appinScriptEditor.Orapuoidistribuirequestaappachiunquetuvoglia.Quandoquestaappvieneoraavviatasuqualsiasicomputerdidestinazione,copiailfiledelflussodilavorodiAutomatordirettamentenellacartellaincuideveessereposizionato.Aggiungeràanchelacartella"ABC" all'elenco delle cartelle abilitate in Folder Actions Setup.app e allega lo script o il file del flusso di lavoro in quella cartella

    
risposta data 21.11.2018 - 00:47
fonte
0

Simile nel ilk al suggerimento di @ wch1zpink, prenderei in considerazione la formulazione di Folder Action come script piuttosto che un flusso di lavoro Automator , che sarebbe simile a questo:

on adding folder items to directory after receiving fs

    do shell script "..."

end adding folder items to

Salvando questo file come .scpt o .applescript e spostandolo su ~/Library/Scripts/Folder Action Scripts , puoi quindi creare script delle azioni di cartella e collegarle a cartelle come questa:

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

dove "my folder action script.applescript" è il nome dello script di azione della cartella salvata; e le proprietà name e path rappresentano il nome e il percorso della cartella monitorata.

    
risposta data 24.11.2018 - 03:42
fonte

Leggi altre domande sui tag