Часто не хочется запускать свой проект локально, т.к. батарейка садится, мак греет колени, жужжит и вообще тратит ресурсы. Куда удобнее запускать свой код в облаке.
Но как выгрузить свой код в облако?
В Linux есть интерфейс inotify, в MacOS – FSEvents. А для людей есть обёртки над этими интерфейсами, например FSWatch – приложение, позволяющее слушать директорию на изменения и репортить об этом в STDOUT.
Задача остается за малым: связать FSWatch и RSync для выгрузки изменений с локальной машины в облако. Для этих целей для себя я написал вот такой скриптик. Пользуюсь им уже пару месяцев, за это время скрипт ни разу не завис и работает фантастически.
➜ ~ python2.7 syncer.py --watch
Watching directory /Users/p.patrin/Projects/my-project/
Adding file web/data/models.py
Adding file web/data/services.py
Adding file web/data/logic.py
Synced 3 file(s)!
Adding file web/data/models.py
Synced 1 file(s)!