A pergunta do StackOverflow que você citou foi adicionada a outra resposta - há o utilitário fswatch
ali mesmo no Homebrew.
Observe que o comando fswatch
é mais parecido com inotifywatch
, não inotifywait
. Significa que, em vez de apenas uma vez esperar por alterações de arquivo e, em seguida, sair, ele insere um loop infinito, imprimindo os arquivos alterados - para que você possa capturar as alterações com um pipe Unix. Então seu roteiro seria "de dentro para fora", digamos.
Por exemplo, no Linux, eu geralmente tenho um oneliner que executa meu comando em alterações de arquivo usando inotifywait
:
while true; do inotifywait -q -e modify files... ; my_command; done
Enquanto para fswatch
ter o mesmo efeito, preciso:
fswatch files... | (while read; do my_command; done)
O texto acima assume que você não precisa de arquivos alterados como argumentos para o seu comando. Se isso acontecer você precisa deles, seria assim:
fswatch files... | (while read x; do echo $x | xargs my_command; done)
Espero que isso ajude:)
felicidades