Tento skript používám ke spuštění sestavení skriptu na změny v adresářovém stromu:
#!/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
Používá inotify-tools
. Zaškrtněte inotifywait
manuálová stránka pro přizpůsobení toho, co spouští sestavení.
Můžete zkusit entr
nástroj pro spouštění libovolných příkazů při změně souborů. Příklad pro soubory:
$ ls -d * | entr sh -c 'make && make test'
nebo:
$ ls *.css *.html | entr reload-browser Firefox
nebo vytiskněte Changed!
když soubor file.txt
je uložen:
$ echo file.txt | entr echo Changed!
Pro adresáře použijte -d
, ale musíte jej použít ve smyčce, např.:
while true; do find path/ | entr -d echo Changed; done
nebo:
while true; do ls path/* | entr -pd echo Changed; done
Jak zkompilovat dynamickou knihovnu pro aplikaci JNI na linuxu?
Jak sledovat podřízený proces pomocí strace?