Я знаю о inotifywait
/ inotifywatch
от inotify-tools, о entr
( http://entrproject.org/ ) и дюжине сценариев оболочки, но они не то, что мне нужно.
Что мне нужно, это что-то похожее guard
( https://github.com/guard/guard ).
Они работают так: вы создаете файл в каталоге, который указывает, что нужно отслеживать и что делать, когда эти файлы изменяются.
С охраной все в порядке, но это: 1) ресурсоемкий ресурс (а в больших проектах он медленный), 2) требуется целый Ruby + куча гемов зависимости, 3) требуется плагин для запуска команд оболочки.
Есть также tup
( http://gittup.org/tup/ ), и это чертовски круто, за исключением одного чрезвычайно глупого ограничения: он не может выводить в каталоги, кроме того, где Tupfile
находится. Его способ заключается в создании Tupfile
в каждом подкаталоге, и это не работает для меня.
Что я хочу в итоге: я указываю шаблоны файлов и каталоги (если нет, то наблюдаю за всеми) в каком-то файле, запускаю какую-то команду, и она отслеживает вещи, соответствующие заданным правилам, всякий раз, когда файлы изменяются / добавляются, они выполняют данные команды. Это оно.
Какие-либо предложения?