Olá pessoal,
Escrevi um pequeno programa em Python chamado monrun
para resolver um pequeno probleminha meu e resolvi compartilhar.
Para que serve?
É a pergunta que não cala. Ele serve para executar um comando toda vez que um arquivo foi modificado, simplesmente.
E para que eu quero isso?
Bom, a utilidade depende da pessoa. Para mim, pessoalmente, eu às vezes utilizo LaTeX para escrever textos mais profissionais.
No uso do LaTeX é preciso, para ver o resultado do texto formatado, fazer a compilação para gerar PDF e eu acho chato ter que ficar alternando a minha janela o tempo todo para executar o comando. Sei que existem ambientes para usar LaTeX, mas eu normalmente escrevo o texto usando Markdown e converto para LaTeX através de um utilitário chamado pandoc (fica a dica). Mas, mesmo que fosse apena com LaTeX, a vantagem de usar o monrun
, para mim, ao menos, é ficar independente de ambiente.
Uau, eu quero
Estou publicando o código no github em https://github.com/wagnerluis1982/monrun. Está tudo em inglês para deixar aberta a possibilidade de voluntários de qualquer lugar.
Como usar?
Usando o README do projeto, a forma mais simples de usar é executando
$ python monrun.py -c <COMANDO> <ARQUIVO>
se quiser que o comando seja executado uma vez antes de iniciar o monitoramento, use a chave -b
(de before) como a seguir
$ python monrun.py -b -c <COMANDO> <ARQUIVO>
Uma chave -a
(de after) também está disponível para sobrepôr um -b
anterior ou vice versa.
Conclusão
O uso que estou dando ao programa é o de compilar um arquivo LaTeX sempre que há mudanças. Mas pode haver vários outros usos, como uma mudança em um arquivo de Log, por exemplo.
E claro que ainda há muita coisa que pode ser melhorado como poder dizer de quanto em quanto tempo a mudança será verificada (atualmente é fixo em 1 segundo) e também a habilidade de monitorar mais de um arquivo ou mesmo um diretório. A mudança do tempo é muito simples e nos próximos dias, assim que eu tiver tempo eu já realizo essa alteração, já a outra demanda um pouco mais de tempo.
Se achar o programa util para você e querer melhorar, fork o projeto no github e faça um Pull Request. Mas se não tem conta no github nem quer ter, mande para mim via comentário mesmo (o projeto é de código aberto).