Pull to refresh

Comments 27

а есть документация по этому пакету? или какое-нибудь howto?
а зачем доки там всего пару строк чтоб его использовать
import daemon from spam import do_main_program with daemon.DaemonContext(): do_main_program()
spam это я так понимаю типа-мой-модуль?
а как запустить этот скрипт?
просто python my_script.py?
и еще вопросы)
2. Как остановить?
3. Как указать, что нужна одна копия?
этот скрипт сделает fork и запустит отдельный процесс который уже будет daemon процессом!

чтобы остановить его нужно послать этому процессу сигнал c помощью kill

что касается одной копии то это уже нужно проверять самому перед запуском daemon процесса
спасибо. Попробовал, получилось.
Для получения изменения удобнее использовать деплой
ну вот, появился хоть один коммент, а то одни минусы :)

Да, но мне кажется отсылка писем, в таком деле как оповещение о коммитах более удобней и функциональней.
я как разработчик (и немного админ своих серверов) не всегда нахожусь за одним компьютером, да и вообще могу быть на телефоне, поэтому получая оповещения по почте я знаю, что не пропущу ни одно из них, на каком бы устройстве я его не просмотрел.
Да и удобно складывать эти оповещения в папочку «на всякий пожарный»

Я использую gitnotify вместе с etckeeper'ом на каждом сервере, и всегда знаю, что где меняется.

За ссылку спасибо — посомотрю
Да, письмом надежнее. Тут скорее целью было ненавязчивое уведомление о изменениях, чтобы не затягивать время merge'a и разрешения конфликтов. В коде предусмотрел добавление новых видов уведомлений, постепенно думаю обрастет новыми экспериментами :)
Для реализации задачи был выбран язык Python (высокоуровневый, интерпретируемый, объектно-ориентированный и расширяемый язык программирования), так как я его не знаю.


Что ж вы будете делать, когда языки-то кончатся…
Мне кажется всё правильно сделал. Я тоже стараюсь решать простые задачи на незнакомых мне языках. Во-первых, это интересно, а во-вторых, ещё и полезно для развития кругозора.
На заметку: чтобы не опрашивать репозитории, научите демона ловить, к примеру, широковещательные сообщения, разбрасывать которые будет post-commit хук git.
А если следить за десятью репозиториями и ждать коммита от неизветсного человека?
Хук будет работать ровно с тех репозиториев, для которых определён. Не более.
А если вы действительно следите и ждёте, то libnotify не лучший вариант.

Я так понял, что автор упражняется, поэтому предложил ему упражнение №2 %)
Можно в повседневной работе использовать code review. Тогда ссылки на новые коммиты будут вам на почту падать. Будучи тимлидом, вы сможете их ревьювить. Да, кстати, и не только тимлидом.
Цель использование данного демона?
Все равно после коммита уже сложно что-то исправить без костылей.
а мне нравится. just for fun и обучение/опыт. мог бы — плюсанул.
Доложите объём оперативной памяти, занимаемой этим демоном, и стоили ли того эти мегабайты?
def setLastCheckTime(self, time = None):
    subprocess.check_output('touch ' + __file__, shell=True)

OMG… При правильной установке у файла будет овнер root:root и права rwxr--r--. Никакой touch вы ему не сделаете. Либо создайте отдельный файл и в него пишите дату последней проверки либо сохраняйте эту дату внутри объекта GitPushNotify()

if listGroup.has_key(i)
has_key уже deprecated. Пользуйтесь
if i in listGroup


В питоне по крайней мере, принято в CamelCase писать только названия классов, все остальное через_подчеркивание.

А в целом, если говорите что на Python раньше не писали — очень даже не плохо.
Спасибо!
Хранить внутри объекта не совсем верно, если демон простаивал некоторое время, то уведомления начнут поступать о коммитах потупивших только после запуска. Способ с touch был выбран, чтобы избежать дополнительных файлов, про права не подумал.
Может кому пригодится:
При заходе через ssh/НЕ из виртуального терминала 7 получается все так:

lomalkin@lomalkin-qdbook:~$ notify-send "Habr"

GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
aborting...
Аварийный останов


Соответственно это лечится указыванием display, куда отправлять:

lomalkin@lomalkin-qdbook:~$ DISPLAY=:0 notify-send "Habr"
Теперь работает.
Добавлю, что такой же прием необходим при отправке notify-send из cron'а.
Буквально недавно написал примерно такую же штуку, только на Perl. Использует веб-хуки гитхаба (висит на порту и ждет HTTP POST от github), отсылает по XMPP заинтересованным пользователям сообщения о коммитах, тикетах, пулл-реквестах и комментариях в репозитории (на комментарий можно ответить от своего имени прямо из XMPP-клиента, если настроить OAuth-токен)
Sign up to leave a comment.

Articles