watchexec馃敆
watchexec
es una herramienta que ejecuta un comando
cada vez que detecta una modificaci贸n dentro de alguna ubicaci贸n en el sistema de archivos local.
Lo anterior permite, entre otros muchos casos:
- Ejecutar pruebas unitarias cada vez que guardemos cambios en el editor de texto o IDE.
- Dar formato o analizar (mediante an谩lisis est谩tico o b煤squeda de code smells) el c贸digo fuente cada vez que guardemos cambios en el editor de texto o IDE.
- Reiniciar la ejecuci贸n de alg煤n proceso, un servidor de HTTP por ejemplo, cada vez que guardemos cambios en el editor de texto o IDE.
Como ejemplo, teniendo la carpeta $HOME/proyecto/docs
con mkdocs
(para la generaci贸n de documentaci贸n) y $HOME/proyecto/Makefile
con el siguiente contenido:
PORT = 9090
generate-docs :
mkdocs build --clean --quiet
preview-docs :
-pkill -f 'thttpd -p $(PORT)'
@thttpd -p $(PORT) -T UTF-8 -nor -M 0 -l /dev/null -d site
@echo "http://localhost:$(PORT)"
all : generate-docs preview-docs
.DEFAULT_GOAL := all
.PHONY : generate-docs preview-docs
.SILENT : preview-docs
Se puede ejecutar lo siguiente para que cada vez que se presente alguna modificaci贸n en los archivos
de Markdown, dentro de docs
, se re-genere la carpeta site
y se reinicie el servidor HTTP thttpd
,
de tal manera que http://localhost:9090 muestre el contenido actualizado de site
:
[nihilipster@localhost:~/proyecto]$ watchexec --filter docs make
Algunas alternativas a watchexec
ser铆an
fswatch,
watchman,
direvent y
entr.