- PVSM.RU - https://www.pvsm.ru -
Приятного времени суток!
Ох, жуть как зацепила статья alizar [1] Фотографируемся после каждого коммита (Linux, OSX) [2]. Но в силу особенностей своей ОС, предложенные решения мне, слегка, не подошли. Проведя немного времени в поисках и не получив искомого результата, было принято решение сделать что-то простенькое (just for fun, with Demonix [3]) для решения данной задачи…
Дано:
Несколько клиентов для разных систем (изврат, но что поделать)
Найти:
решение как можно при коммите делать фото с веб камеры.
Чтобы максимально упростить решение задачи, я использовал библиотеку DirectShow .NET [4]
Основной код консольного приложения:
Настройки клиентов:
Я создал hook на событие Post-commit, т.к. мне хотелось добавлять к имени файла ревизию.
При запуске команды, автоматически добавляются аргументы. Для разных событий, разные аргументы [5].
Конкретно для события Post-commit аргументы следующие:
PATH DEPTH MESSAGEFILE REVISION ERROR CWD
В итоге получается что-то типа c:tempsvn_134278_2012-07-17_13-54-46.jpg
Путь и формат файла каждый может настроить под себя [6].
Для TortoiseGit настройки практически идентичны:
На моем железе время работы программы около 00:00:03.3676868
before INIT 00:00:00.0000007
before CaptureImage 00:00:00.3365297
before CloseInterfaces 00:00:02.3431425
before Clone 00:00:03.3188398
before save 00:00:03.3235840
end 00:00:03.3676868
Естественно использовать webcam-snap.exe можно и для любых других целей.
В дальнейшем имеющиеся снимки можно склеить, например, в видео. На текущий момент у меня недостаточно коммитов для видео ;)
GitHub [6]
Автор: iklementiev
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/git/11554
Ссылки в тексте:
[1] alizar: http://habrahabr.ru/users/alizar/
[2] Фотографируемся после каждого коммита (Linux, OSX): http://habrahabr.ru/post/146418/
[3] Demonix: http://habrahabr.ru/users/demonix/
[4] DirectShow .NET: http://www.codeproject.com/Articles/2615/DirectShow-NET
[5] разные аргументы: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-hooks
[6] настроить под себя: https://github.com/iklementiev/webcam-snap
Нажмите здесь для печати.