Come eseguire un'azione cartella o un altro script di Automator quando apporto modifiche a una cartella?

4

Come eseguire un'azione cartella o un altro script di Automator quando apporto modifiche a una cartella? E con i cambiamenti intendo non solo eliminare o inserire nuovi file, la cosa più importante per me è quando il contenuto di un file viene modificato, l'azione verrà attivata.

    
posta tenshimsm 19.06.2012 - 02:11
fonte

2 risposte

1

Questo tipo di requisito va oltre i semplici fsevents hook esposti come azioni cartella. Ti consiglio di utilizzare Hazel di Paul Kim, che ti consentirà di creare regole di "watch and react" di granularità quasi illimitata e complessità.

    
risposta data 21.06.2012 - 08:14
fonte
1

Usando launchd, puoi salvare un elenco di proprietà come questo in ~ / Library / LaunchAgents / e caricarlo con qualcosa come launchctl load ~/Library/LaunchAgents/automator_test.plist o disconnettendoti e tornando indietro.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>automator_test</string>
    <key>ProgramArguments</key>
    <array>     
        <string>automator</string>
        <string>/Users/username/Desktop/Test.workflow</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/Users/username/Desktop/</string>
    </array>
    <key>StartInterval</key>
    <integer>0</integer> <!-- run at most every 0 seconds, by default 10 -->
</dict>
</plist>

Launchd rileva solo le modifiche ai file quando vengono salvati atomicamente (o cancellati e ricreati ogni volta che vengono salvati). La maggior parte delle app OS X esegue salvataggi atomici, ma ad esempio TextMate e vim no.

    
risposta data 19.06.2012 - 07:43
fonte

Leggi altre domande sui tag