Недавно мне
захотелось странного. Чтобы файлы с
кодом редактировать на привычном
десктопе, а запускать и отлаживать
программу на другом хосте, в виртуальной
машине. При этом хочется, чтобы изменения,
вносимые в код, сразу отражались на
работающем приложении.
Приложение —
веб-сервис на Node.js, поэтому перезапуск
сервиса при изменении в файлах сделать
удалось просто. В виртмашине наколдовал:
sudo npm install supervisor -g supervisor app.js
Осталось
разобраться, как автоматом заливать
файлы на виртмашину при сохранении
того, что я наредактировал в своем
любимом текстовом редакторе. Тоже не
рокетсаенс. Поскольку в Linux есть inotify,
достаточно подобрать один из заточенных
под эту систему инструментов. Я выбрал
incron.
На десктопе
колдунство такое:
su -l aptitude install incron nano /etc/incron.allow valik su -l valik incrontab -e /home/valik/node.uploader/ IN_CREATE,IN_DELETE,IN_CLOSE_WRITE bash /home/valik/scripts/rsync.dev.files.sh nano rsync.dev.files.sh #!/usr/bin/env bash rsync -av /home/valik/node.uploader/ devhost:nodevcu/ |
Как только в
папке /home/valik/node.uploader/ изменится какой-либо
файл, incron запускает скрипт rsync.dev.files.sh.
Который rsync-ом переписывает свежее в
папку devhost:nodevcu/
А там уже
супервизор подхватывает эстафету.
Проверил,
работает.
original post http://vasnake.blogspot.com/2014/12/sync-and-reload.html
Комментариев нет:
Отправить комментарий