Фотоснимки при коммитах в Mercurial
Недавно узнал про #gitshots — фотоснимки, получаемые с помощью веб-камеры во время коммитов в git-репозитории. По-моему это — самый верный способ получения фотоснимков себя без лишних действий. Цели у всех разные: можно их куда-нибудь постить, а можно просто собирать и потом анализировать. Мы с женой пробовали фотографироваться каждый день, но быстро надоело, а с таким скриптом всё происходит само собой.
Я почти не использую Git — у меня везде Mercurial, скрипт пришлось писать самому. Но делается это элементарно. Получением снимков с камеры у меня занимается утилита fswebcam, а скрипт целиком выглядит так:
#!/bin/sh
if [ -e /dev/video0 ]; then
REPO=$(basename $PWD)
if [ -n "$HG_NODE" ]; then
test -d $HOME/Pictures/commitshots || mkdir $HOME/Pictures/commitshots
nohup fswebcam --quiet --jpeg 95 --no-banner \
"$HOME/Pictures/commitshots/%Y%m%d-%H%M%S-$REPO.jpg" >>$HOME/commitshots.log
notify-send -i camera "Commit shot" \
"New commit shot is available in ~/Pictures/commitshots"
else
geeqie $HOME/Pictures/commitshots
fi
fi
Чтобы скрипт срабатывал при каждом коммите в любой репозиторий, в ~/.hgrc
добавлены две строки:
[hooks]
commit = ~/bin/commitshot
Имена файлов содержат дату, время и имя репозитория, то есть можно даже понять, над чем велась работа в момент снимка.
Попутно выяснилось, что встроенная камера моего ноутбука снимает ужасно, и я теперь ищу как бы её заменить на что-нибудь более приличное.
Следить за развитием событий можно через RSS ленту или почтовую рассылку.