Wie stellt man den Automator-Workflow für Clients bereit?

Für einen bestimmten Anwendungsfall habe ich mit Automator einen Workflow für Ordneraktionen entwickelt. Wenn eine Datei in einem Ordner „abc“ erstellt wird, startet der Workflow und führt ein Shell-Skript aus.

Dieser Workflow muss auf vielen Clientcomputern in Unternehmensumgebungen installiert/bereitgestellt werden. Während Endbenutzern die Einrichtungsanweisungen bereitgestellt werden könnten, ist dieser Ansatz fehleranfällig, sodass ich nach einem besseren Ansatz suche.

Mir ist bewusst, dass die eigentliche Workflow-Definition gespeichert wird in:

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

Während *.workflow/Contents/document.wflow den folderActionFolderPath enthält, funktioniert das Kopieren des Workflows von einem Client auf einen anderen nicht, da die Ordneraktion nicht aktiviert wird. Es muss noch im Finder aktiviert werden (Home-Ordner --> Rechtsklick auf den Ordner --> Auswahl von "Folder Action Setup ..." aus dem Dropdown-Menü). Ich habe keine Möglichkeit gefunden, diesen Konfigurationsschritt über die Befehlszeile zu automatisieren.

Wie kann ein Systemadministrator einen Workflow für Ordneraktionen auf mehreren Client-Rechnern installieren?

Interessanter Fall der Automatisierung einer Automatisierung ... Darf ich fragen, was Ihr endgültiges Ziel ist? Vielleicht können wir Ihnen einen anderen Ansatz für Ihr ganzes Ziel vorschlagen.

Antworten (2)

Wenn Sie den Prozess wirklich „idiotensicher“ machen wollen, haben Sie hier die Möglichkeit. Erstellen Sie in Script Editor.app ein neues leeres Dokument und speichern Sie es dann sofort als Anwendung (ich habe meine als „JIMZ Attach Folder Action.app“ gespeichert).

Der Zweck dieser Anwendung besteht darin, die Automator-Arbeitsablaufdatei (die im Ordner „Ressourcen“ dieser neuen Anwendung enthalten sein wird, die Sie gerade im Skript-Editor erstellt haben) zu kopieren, die Sie an den Ordner „ABC“ auf dem Computer eines beliebigen Benutzers anhängen möchten. in den erforderlichen Ordner „Ordneraktionen“ auf diesem Computer. Wenn der Ordner „ABC“ auf dem Zielcomputer nicht vorhanden ist, wird er erstellt. Für die Zwecke dieses Projekts würde sich der Ordner „ABC“ auf dem Desktop des Zielcomputers befinden.

Fügen Sie den folgenden Code in Ihre neue leere AppleScript-App ein, die Sie gerade erstellt haben.

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

Ziehen Sie dann Ihre Automator-Workflow-Datei aus der Finder-App direkt in den Ressourcenordner im Skript-Editor (wie in der Animation unten gezeigt).

Geben Sie hier die Bildbeschreibung ein

Kompilieren und speichern Sie die App im Skripteditor. Jetzt können Sie diese App an wen Sie wollen verteilen. Wenn diese App jetzt auf einem beliebigen Zielcomputer gestartet wird, kopiert sie die Automator-Workflow-Datei direkt in den Ordner, in dem sie gespeichert werden muss. Außerdem wird der Ordner „ABC“ zur Liste der aktivierten Ordner in der Setup.app für Ordneraktionen hinzugefügt und das Skript oder die Workflow-Datei an diesen Ordner angehängt

wie speicherst du die gifs?
@MateusRibeiro Ich verwende einfach die integrierte Bildschirmaufzeichnung des Mac, um eine Videoaufzeichnung meiner Bildschirmaktionen zu erstellen. Dann lade ich diese Videodatei in GIF Brewery 3, um meine Änderungen vorzunehmen und als .gif gifbrewery.com zu speichern

Ähnlich wie beim Vorschlag von @ wch1zpink würde ich in Betracht ziehen, die Ordneraktion als Skript und nicht als Automator- Workflow zu formulieren, der ungefähr so ​​​​aussehen würde:

on adding folder items to directory after receiving fs

    do shell script "..."

end adding folder items to

Wenn Sie dies entweder als .scptoder- .applescriptDatei speichern und nach verschieben ~/Library/Scripts/Folder Action Scripts, können Sie dann die Erstellung von Ordneraktionen skripten und sie wie folgt an Ordner anhängen:

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

wobei "my folder action script.applescript"der Name Ihres gespeicherten Ordneraktionsskripts ist; und die Eigenschaften nameund pathstellen den Namen und den Pfad zu Ihrem überwachten Ordner dar.