splincodewd
@splincodewd
Developer

Как написать bash скрипт, который будет прослушивать изменения в файле?

Я знаю, что есть всякие таск-ранеры, но я вот хочу так, написал скрипт на bash

#!/bin/bash

sass -t compressed build/sass/app.scss:public/css/app.css
autoprefixer-cli  -b "> 0%"  public/css/app.css -o public/css/app.css
cleancss -o public/css/app.css public/css/app.css


Он выполняет 3 команды, но получается так, что мне приходится каждый раз выполнять
$ sh sass.config.sh

А хотелось бы, чтобы он работал как watch, но для этого он должен прослушивать изменения в файле app.scss

Как можно это сделать?

Или хотя бы подскажите, как webpack может запускать этот shell скрипт, после того как он скомпилировал свой js (там хотя бы он в режиме watch работает webpack)
  • Вопрос задан
  • 355 просмотров
Решения вопроса 2
index0h
@index0h
PHP, Golang. https://github.com/index0h
while true; do
    inotifywait -qq -e create,close_write,modify,move,delete $CHECK_FOLDER && $BUILD_COMMAND
done
Ответ написан
@MechanID
Админ хостинг провайдера
Как вариант для отслеживания что происходит в файлах (код или конфиги) использовать локальный git
Как это работает - добавляем нужные папки в git локально, а после из крона запускается скрипт который делает:
git diff
если пустота - ничего не изменилось
если есть вывод - дальше чтото делаем, от отправки изменений на почту до парсинга вывода и запуска какихто дургих скриптов.
простой пример скритпа в кроне для папки /etc/ все изменения отправляем на почту:
#!/bin/bash

cd /etc/

DIFF=`git diff`
DIFFCNT=`git diff|wc -l`
DATE=`date`

if [ "$DIFFCNT" -eq "0" ]
        then
                exit 0
        else
                echo "$DIFF" |mailx -s "mycoolserver /etc changes at $DATE" username@gmail.com
                git commit -a -m autocommit
                exit 0
fi
#EOF
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы