Bash-способ следить за изменениями файлов?



Мое текущее решение заключается в использовании сторожевой собаки библиотеки python и фрагмента bash (, первоначально взятого отсюда ).



watchmedo shell-command client/js/src/templates/ proto/ --recursive 
--patterns="*.soy;*.proto"
--command="echo "WATCHMEDO file changed - rebuilding"; make genfiles;"


В основном я смотрю несколько файлов шаблонов, а затем запускаю make genfiles автоматически, если один из них изменяется.



Мне интересно, есть ли способ сделать это в pure bash? Я бы не хотел, чтобы все мои разработчики зависели от этой библиотеки Python.

Я на OSX.

547   2  

2 ответов:

#!/bin/bash

watched_files=$@  # pass watched files as cmd line arguments

if [ -z "$watched_files" ]; then
    echo "Nothing to watch, abort"
    exit
else
    echo "watching: $watched_files"
fi

previous_checksum="dummy"
while [ 1 ]; do
    checksum=$(md5 $watched_files | md5)  # I use Mac so I have `md5`, in linux it's `md5sum`
    if [ "$checksum" != "$previous_checksum" ]; then
        echo "None shall pass!"  # do your stuff here
    fi
    previous_checksum="$checksum"
    sleep 1
done

Это хороший клиент cli FAM: http://fileschanged.sourceforge.net/

Comments

    Ничего не найдено.