Automatikus hook létrehozás minden új svn repository-ban
A beállítás menete
A teljes megoldáshoz három összetevőre lesz szükségünk:
- a post-commit sablonra
- egy script-re, ami megfelelő paraméterekkel bemásolja post-commit script-et a hooks könyvtárba
- az incron beállítására
Post-commit sablon
A lényege, hogy olyan helyre tegyük ahol később is megtaláljuk, valamint a másoló script hozzáférhessen.
/home/subversion/templates:
kms@localhost:/home/subversion/templates$ ls -l total 4 -rw-r--r-- 1 root root 36 Sep 16 22:15 post-commit |
A tartalmára vonatkozóan elég jó leírást ad Daniel a Bonetree blog oldalain.
Másoló script
Az incron által megadott paramétereken végez egy egyszerű ellenőrzést, majd megfelelőség esetén bemásolja a sablont a hooks könyvtárba. Az érthetőség kedvéért több lehetséges ellenőrzés kimaradt a példából, illetve nem a lehetséges legjobb választás.
#!/bin/bash # from where to copy skeleton PATH_TO_SKELETON=/home/subversion/templates/post-commit # $1 is the filename given from incrond # $2 is the directory name PATH_TO_HOOKS_DIR=${1}/hooks PATH_TO_NEW_FILE=${PATH_TO_HOOKS_DIR}/post-commit #retry wait in seconds TIMEOUT_ON_RETRY=5 copy_hook () { cp ${PATH_TO_SKELETON} ${PATH_TO_NEW_FILE} chmod ugo+x ${PATH_TO_NEW_FILE} } if [ -d ${PATH_TO_HOOKS_DIR} ]; then copy_hook; else sleep ${TIMEOUT_ON_RETRY}; copy_hook; fi |
incron beállítás
Lényegében egy hasonló beállítási felületet kapunk, mint amit a cron esetében megszokhattunk. Aki szeretne belemélyedni a lehetőségek kusza világába, ajánlom a részletes leírást. Amit nem szabad elfelejteni, az a jogosultságok beállítása az /etc/incron.allow file-ban.
/home/subversion/repository IN_CREATE /usr/local/bin/add_hook.sh $@/$# |
A példa lényege, megadjuk melyik könyvtárban szeretnénk figyelni és melyik eseményt. Az IN_CREATE akkor következik be, amikor új file-t vagy könyvtárat hozunk létre a megadott helyen. Ezután megadjuk, hogy milyen script/program kerüljön futtatásra, valamint felsoroljuk az átadandó paramétereket. Jelen esetben az új könyvtár neve.
Az új repo létrehozása után kialakult könyvtár-struktúra incron előtt (a hooks tartalma):
kms@localhost:/home/subversion/repository$ ls -la repo_pre_incron/hooks/ total 44 drwxrwxr-x 2 kms kms 4096 Sep 16 11:34 . drwxrwxr-x 6 kms kms 4096 Sep 16 11:34 .. -rw-rw-r-- 1 kms kms 2000 Sep 16 11:34 post-commit.tmpl -rw-rw-r-- 1 kms kms 1690 Sep 16 11:34 post-lock.tmpl -rw-rw-r-- 1 kms kms 2307 Sep 16 11:34 post-revprop-change.tmpl -rw-rw-r-- 1 kms kms 1606 Sep 16 11:34 post-unlock.tmpl -rw-rw-r-- 1 kms kms 2982 Sep 16 11:34 pre-commit.tmpl -rw-rw-r-- 1 kms kms 2038 Sep 16 11:34 pre-lock.tmpl -rw-rw-r-- 1 kms kms 2764 Sep 16 11:34 pre-revprop-change.tmpl -rw-rw-r-- 1 kms kms 1980 Sep 16 11:34 pre-unlock.tmpl -rw-rw-r-- 1 kms kms 2758 Sep 16 11:34 start-commit.tmpl |
és incron beállítása után:
kms@localhost:/home/subversion/repository$ ls -la repo_with_incron/hooks/ total 48 drwxrwxr-x 2 kms kms 4096 Sep 16 11:34 . drwxrwxr-x 6 kms kms 4096 Sep 16 11:34 .. -rwxr-xr-x 1 kms kms 36 Sep 16 11:34 post-commit -rw-rw-r-- 1 kms kms 2000 Sep 16 11:34 post-commit.tmpl -rw-rw-r-- 1 kms kms 1690 Sep 16 11:34 post-lock.tmpl -rw-rw-r-- 1 kms kms 2307 Sep 16 11:34 post-revprop-change.tmpl -rw-rw-r-- 1 kms kms 1606 Sep 16 11:34 post-unlock.tmpl -rw-rw-r-- 1 kms kms 2982 Sep 16 11:34 pre-commit.tmpl -rw-rw-r-- 1 kms kms 2038 Sep 16 11:34 pre-lock.tmpl -rw-rw-r-- 1 kms kms 2764 Sep 16 11:34 pre-revprop-change.tmpl -rw-rw-r-- 1 kms kms 1980 Sep 16 11:34 pre-unlock.tmpl -rw-rw-r-- 1 kms kms 2758 Sep 16 11:34 start-commit.tmpl |
További kellemeset és hasznosat!
Pages: 1 2
A saját 10 fejlesztési szabályom Játék többmonitoros környezetben
Comments are currently closed.