J'utilise ce script pour exécuter un script de construction sur les changements dans une arborescence de répertoire :
#!/bin/bash -eu
DIRECTORY_TO_OBSERVE="js" # might want to change this
function block_for_change {
inotifywait --recursive \
--event modify,move,create,delete \
$DIRECTORY_TO_OBSERVE
}
BUILD_SCRIPT=build.sh # might want to change this too
function build {
bash $BUILD_SCRIPT
}
build
while block_for_change; do
build
done
Utilise inotify-tools
. Vérifiez inotifywait
page de manuel pour savoir comment personnaliser ce qui déclenche la construction.
Vous pouvez essayer entr
outil pour exécuter des commandes arbitraires lorsque les fichiers changent. Exemple de fichiers :
$ ls -d * | entr sh -c 'make && make test'
ou :
$ ls *.css *.html | entr reload-browser Firefox
ou écrivez Changed!
quand fichier file.txt
est enregistré :
$ echo file.txt | entr echo Changed!
Pour les répertoires, utilisez -d
, mais vous devez l'utiliser dans la boucle, par exemple :
while true; do find path/ | entr -d echo Changed; done
ou :
while true; do ls path/* | entr -pd echo Changed; done