Ações de pasta no OS X observando todas as subpastas

6

Eu tenho uma pasta para a qual gostaria de adicionar uma ação de pasta. A ação funciona muito bem quando o arquivo é adicionado ao nível superior. Mas quando um arquivo é adicionado e subpastas, a ação não é ativada. Existe uma maneira de garantir que uma ação de pasta seja ativada quando um arquivo é adicionado a qualquer uma de suas subpastas?

    
por biased_estimator 06.07.2012 / 03:31

1 resposta

1

launchd tem um recurso chamado watchpaths que pode executar um script .sh ou qualquer outra por favor quando ocorrerem mudanças.

dependendo dos requisitos de segurança dos caminhos que você está procurando monitorar e quando gostaria de monitorar (quando logado ou sempre?); determina onde você coloca o plist.

 ~/Library/LaunchAgents         Per-user agents provided by the user.
 /Library/LaunchAgents          Per-user agents provided by the administrator.
 /Library/LaunchDaemons         System-wide daemons provided by the administrator.
 /System/Library/LaunchAgents   Per-user agents provided by Mac OS X.
 /System/Library/LaunchDaemons  System-wide daemons provided by Mac OS X.

Exemplo: ~/Library/LaunchAgents/com.tellemewhen.plist

<?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>com.tellemewhen.plist</string>
    <key>OnDemand</key>
    <true/>
    <key>Program</key>
    <string>/PATH/TO/YOURSCIPTTORUN.sh</string>
    <key>ProgramArguments</key>
    <array>
            <string></string>
    </array>
    <key>WatchPaths</key>
    <array>
            <string>/path/to/watch</string>
    </array>
    </dict>
</plist>

launchctl load ~/Library/LaunchAgents/com.tellemewhen.plist carrega o plist.

    
por 05.09.2014 / 05:33