• Watchman: Ferramenta para Monitoramento de Arquivos Alterados

    Em um post no blog do grupo Facebook Engineering, o desenvolvedor Wez Furlong introduziu a ferramenta de código aberto Watchman. A ferramenta, sob a licença APL 2.0, monitora arquivos para verificar se os mesmos foram alterados. Ela também pode desencadear ações como construções automáticas ou enviar notificações caso certos arquivos sejam modificados.


    Wez Furlong.

    Furlong escreve que a meta do desenvolvimento foi acelerar o processo de construção dentro da companhia: um projeto como o Facebook requer uma longa série de passos de construção para ir desde o código PHP até uma aplicação funcional, e esses passos tem tomado muito tempo. Assim sendo, para acelerar as coisas, os desenvolvedores decidiram iniciar a construção de forma incremental, compilando apenas o código que foi alterado.

    Os desenvolvedores também estão procurando por uma ferramenta para outros projetos que poderia consultar e retornar as alterações dos sistema de arquivos, mas as ferramentas que eles encontraram que já incorporaram essa função não eram exatamente o que eles queriam. Então, os desenvolvedores iniciaram o projeto Watchman. A ferramenta pode rodar a partir da linha de comando ou via protocolo JSON, sendo capaz de monitorar uma ou mais árvores de diretório, com cada árvore sendo referida como raiz e analisada de forma recursiva.

    Informação sobre as raízes monitoradas podem ser extraídas com dois tipos de sintaxe, "consulta de arquivos" e "padrões legados", sendo melhor a última opção melhor aplicada na requisição de consultas via linha de comando. Nas consultas a arquivos, por outro lado, são melhores quando trabalhando com outras ferramentas, desde que elas sejam mais "estruturadas e expressivas". Comandos como triggers podem ser utilizados para iniciar certas ações, caso os arquivos sejam alterados de acordo com um padrão pré-determinado.

    Essa ferramenta ainda possui alguns pontos fracos - como a falta de suporte para symlinks, e até mesmo Furlong alerta contra pensar que isso é como uma bala de prata para construções rápidas - mas ele informa que tem ocorrido melhoriais notáveis nos projetos internos do Facebook em termos de velocidade. O Watchman roda no Linux, Mac OS X, FreeBSD e Solaris. O código está disponível no GitHub.

    Saiba Mais:

    - Heise Online: Watchman keeps an eye on changed files (em Inglês)