ããã¯ãUbuntu OnlineãFedora OnlineãWindows ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãMAC OS ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãªã©ãè€æ°ã®ç¡æãªã³ã©ã€ã³ ã¯ãŒã¯ã¹ããŒã·ã§ã³ã®ããããã䜿çšããŠãOnWorks ç¡æãã¹ãã£ã³ã° ãããã€ããŒã§å®è¡ã§ããã³ãã³ã irkerhook ã§ãã
ããã°ã©ã ïŒ
NAME
irkerhook - irker éç¥ãçºè¡ãããªããžã㪠ãã㯠ã¹ã¯ãªãã
SYNOPSIS
irkerhook.py [-n] [-V] [[--å€æ°=å€...]] [[ã³ããã ID...]]
DESCRIPTION
irkerhook.py ã¯ãã³ãããåŸã®ããã¯ããåŒã³åºãããããšãæå³ãã Python ã¹ã¯ãªããã§ãã
ããŒãžã§ã³ç®¡çãªããžããªã ãã®ä»äºã¯ãçºçããã³ãããã«é¢ããæ å ±ãåéããããšã§ã
ãã㯠(ããã³å Žåã«ãã£ãŠã¯ãªããžããªææè ã«ãã£ãŠèšå®ãããèšå®) ãéä¿¡ãããã®æ å ±ãéä¿¡ããŸãã
ããŸããŸãªã¢ããŠã³ã¹ ãã£ãã«ã«è»¢éããããã® irkerd ã®ã€ã³ã¹ã¿ã³ã¹ã«ã
irkerhook.py ã®é©åãªåŒã³åºããšåäœã¯ãVCS ã«ãã£ãŠç°ãªããŸãã
ïŒããŒãžã§ã³ç®¡çã·ã¹ãã ïŒããããåŒã³åºããŠããŸãã XNUMX ã€ã®ç°ãªãå ŽæããããŸãã
æ å ±ãæœåº:
1. VCS ãŠãŒãã£ãªãã£ã®åŒã³åºãã
2. ãŠãŒã¶ãŒèšå®å¯èœãªæ§æå€æ°ããµããŒããã git ã®ãã㪠VCS ã§ã¯ã
æ¥é èŸãirker.ãã
3. ä»ã® VCS ã§ã¯ããªããžããªã®å éšã«ããæ§æãã¡ã€ã«ãirker.confã
ãã£ã¬ã¯ããªã«ãããŸãã
4. --variable=value 圢åŒã®ã³ãã³ãã©ã€ã³åŒæ°ã
次ã®å€æ°ã¯ããµããŒããããŠãããã¹ãŠã® VCS ã«å ±éã§ãã
ãããžã§ã¯ã
ãããžã§ã¯ãã®ååã æ¯èŒççãèå¥åã«ããå¿ èŠããããŸãã æ®éã«çŸãã
éç¥ã®æåã«ã
ã¬ã
ãªããžããªã®æäžäœãã£ã¬ã¯ããªã®ååã æå®ããªãå Žåãããã©ã«ãã¯
ãããžã§ã¯ãåã®å°æåã®ã³ããŒã
ãã£ã³ãã«
IRC ãã£ã³ãã«ã® URLããŸãã¯åããã®ãã³ã³ãã§åºåã£ããªã¹ãã§ããã£ã³ãã«ãèå¥ããŸãã
éç¥ãéä¿¡ãããŸãã æå®ããªãå Žåãããã©ã«ã㯠freenode #commits ã§ãã
ãã£ã³ãã«ã
éç¥ãäžç¶ãã irker ããŒã¢ã³ãååšãããšäºæ³ããããã¹ãã
ããã©ã«ãã¯ãlocalhostãã§ãã
èšå®ãããšãéä¿¡ã« TCP ã UDP ã§ã¯ãªãé»åã¡ãŒã«ã䜿çšããŸãã å€ã¯ã
察象ã®ã¡ãŒã«ã¢ãã¬ã¹ã
TCP
ãtrueãã®å Žåãéä¿¡ã« TCP ã䜿çšããŸãã ãfalseãã®å ŽåãUDP ã䜿çšããŸãã ããã©ã«ãã¯ãfalseãã§ãã
URLãã¬ãã£ãã¯ã¹
ãªããžããªã®ãã§ã³ãžã»ãã URL ãã¬ãã£ãã¯ã¹ã ããã«ã³ããã ID ãè¿œå ããå Žåã¯ã
cgitãgitwebããŸãã¯åæ§ã®ãã®ãä»ããŠã³ãããã衚瀺ãã CGI ããã€ã³ãããŸãã
å žåç㪠gitweb/cgit ã»ããã¢ããã䜿çšããŠããå Žåã¯ãããããããã©ã«ãã§æ©èœããŸãã
ãã®å€æ°ã®å€ãããªããã®å Žåãcommit ã§ã® URL ãã£ãŒã«ãã®çæ
éç¥ãæå¶ãããŸãã ä»ã®éæ³ã®å€ã¯ããcgitãããgitwebããããã³
ãããã®ã·ã¹ãã ã§éåžžåäœãã URL ãã³ãã¬ãŒãã«å±éããããviewcvsãã
ãã®URLã«ã¯ããžãã¯ã¯ãããŒã%(host)sããšã%(repo)sããçºçããå ŽåããããŸããåè ã¯
irkerhook.py ãå®è¡ãããŠãããã¹ãã® FQDN ã«å±éãããŸãã åŸè ã¯
ãrepoãå€æ°ã®å€ã«å±éãããŸãã
å°åå
URL ãå§çž®ããããã®ãµãŒãã¹ãæã瀺ã URL ãã³ãã¬ãŒãã
éç¥è¡ã®ã¹ããŒã¹ã ãã®å€æ°ã®å€ãããªããã®å Žåãããã
å§çž®ãè©Šã¿ãããŸãã
ã«ã©ãŒ
ãmIRCãã®å Žåãéç¥ãã£ãŒã«ãã mIRC ã«ã©ãŒ ã³ãŒãã§åŒ·èª¿è¡šç€ºããŸãã ãANSIãã®å Žåã¯ãã€ã©ã€ã
ANSI ã«ã©ãŒ ãšã¹ã±ãŒã ã·ãŒã±ã³ã¹ãå«ãéç¥ãã£ãŒã«ãã ããã©ã«ãã¯ããªããïŒè²ãªãïŒã§ãã
ANSI ã³ãŒãã¯ãChatzillaãirssiãircleãããã³ BitchX ã§ãµããŒããããŠããŸãã mIRC ã³ãŒãã®ã¿
mIRCãXChatãKVircãKonversationããŸã㯠weechat ã§èªèãããŸãã
泚: ããããªã³ã«ããŠããã£ã³ãã«ã«éç¥ã衚瀺ãããªããªã£ãå Žåã¯ã
ãã®ãã£ã³ãã«ã®IRCã®ã«ã©ãŒãã£ã«ã¿ãŒããªãã«ããŸãã ãããè¡ãã«ã¯ãopãå¿ èŠã§ã
ç¹æš©; ã³ãã³ãã/ã¢ãŒãããçºè¡ããŸã-cãã§ããªãã®
ãã£ã³ãã«åã æåã«ã³ãã³ãã/msg chanserv setããçºè¡ããå¿ èŠãããå ŽåããããŸã
MLOCK +nt-slk".
æ倧ãã£ãã«æ°
æŽæ°ãšããŠè§£éãããŸãã ãŒãã§ãªãå Žåãããã¯ã䜿çšãããã£ã³ãã«æ°ãå¶éããŸã
ãchannelsãå€æ°ãã解éããŸãã
ãã®å€æ°ã¯ãVCS èšå®å€æ°ãŸã㯠irker.conf ãä»ããŠèšå®ããããšã¯ã§ããŸããã ã§ãã
ã³ãã³ãã©ã€ã³åŒæ°ã§ã®ã¿èšå®ã§ããŸãã ãããã£ãŠããªããžããªã®ããéé ãµã€ãã§
ææè ã¯ã³ãããåŸã®ã¹ã¯ãªãããå€æŽã§ããŸãããããµã€ã管çè ã¯å€æŽã§ããŸã
æªæã®ãããããžã§ã¯ã ãªãŒããŒã«ããã·ã§ããã¬ã³ ã¹ãã ãé²æ¢ããããã«èšå®ããŸãã å€ã«èšå®ãã
ãã ãã2 æªæºã¯ããããè³¢æã§ã¯ãããŸããã
ã·ã¢ã©ã€ã¯
空ã§ã¯ãªããããªãã(ããã©ã«ã) ã§ãªãå Žåãããã¯å€ã CIA ã®åäœããšãã¥ã¬ãŒãããŸãã
ãã¡ã€ã«ã®é·ããªã¹ããåé€ããŠããã©ãŒã ã®èŠçŽãåªå ããŸã (M ã® N ãã¡ã€ã«
ãã£ã¬ã¯ããªïŒã å€ã¯ãé·ãã®ãããå€ã瀺ãæ°å€ã§ãªããã°ãªããŸããã
æåã®ãã¡ã€ã«ãªã¹ãã
git
git ã§ã¯ããã®ããã¯ã (æŽæ°ããã¯å ãã) åŒã³åºãéåžžã®æ¹æ³ã§ã
refname ã®åŸã«ã³ãããã®ãªã¹ããç¶ããŸãã ãªããªã git ãªããžã§ã³ãªã¹ã éåžžãã»ãšãã©ã®ãªã¹ããã
--reverse ã䜿çšããŠéç¥ãçç¥ããŸãã
幎代é ã éåžžã®æŽæ°ã¹ã¯ãªããã§ã¯ãåŒã³åºãã¯æ¬¡ã®ããã«ãªããŸãã
åç §å=$1
å€ã=$2
æ°èŠ=$3
irkerhook.py --refname=${refname} $(git rev-list --reverse ${old}..${new})
ãã ããirkerhook.py ã®çµ¶å¯Ÿãã¹ãå¿ èŠã§ãã
ãã¹ãç®çãšäžäœäºææ§ã®ããã«ãirkerhook.py ãäœãæå®ããã«åŒã³åºããšã
åŒæ° (ã³ãããåŸã®ããã¯ã®ããã«) ã®ããã«åŒã³åºããããã®ããã«åäœããŸãã
ãã®ïŒ
irkerhook.py --refname=refs/heads/master HEAD
ãã ããããã©ã«ã以å€ã®ãã©ã³ãã«ããã·ã¥ãããšãæ£ããçµæãåŸãããŸããã
ãã¢ã¬ãã
ãã®ããã¯ãã€ã³ã¹ããŒã«ããäžè¬çãªæ¹æ³ã¯ãå®éã«ã¯ post-receive ããã¯ã«ãããŸãã
å¿ èŠãªãã¹ãŠã®è©³çŽ°ãå ¥åãã倱æããŠãããã·ã¥ãäžæ¢ããŸããã 以äžã䜿çšããŸã
ã¹ã¯ãªããïŒ
#!/bin/sh
echo "IRC éç¥ãéä¿¡ããŠããŸã"
while read old new refname; è¡ã
irkerhook --refname=${refname} $(git rev-list --reverse ${old}..${new})
è¡ãã
䟿å®äžããã㯠irkerhook-git ãã«ã㌠ã¹ã¯ãªããã«ãã£ãŠå®è£ ãããŠããŸãã
èšå®ã¯ã[irker] ã»ã¯ã·ã§ã³ã®ãªããžããªæ§æãã¡ã€ã«ã§èšå®ã§ããŸãã ããã«äŸããããŸã
ãããã©ã®ããã«èŠãããïŒ
[ã¢ãŒã«ãŒ]
ãããžã§ã¯ã = gpsd
è² = ANSI
ãã£ã³ãã« = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits
ããªããžããªãå€æ°ãèšå®ããªãã§ãã ãã (åçã®å€ãèšç®ãããŸã)ã è©Šè¡ãªã
irker.conf ãã¡ã€ã«ã解éããããã«äœãããŠããŸãã
ããããžã§ã¯ããå€æ°ã®ããã©ã«ãå€ã¯ããªããžã㪠ãã£ã¬ã¯ããªã®ããŒã¹åã§ãã
ãurlprefixãå€æ°ã®ããã©ã«ãå€ã¯ãcgitãã§ãã
ã³ãããã®ãã©ãŒããããå¶åŸ¡ãã git åºæã®å€æ°ãrevformatãã XNUMX ã€ãããŸãã
éç¥ã®èå¥åã 次ã®å€ãæã€å ŽåããããŸãã
ç
ã³ãããã®å®å šãª XNUMX é²æ° ID
çã
12 é²æ° ID ã®æåã® XNUMX æå
説æãã
æåŸã®ã¿ã°ã«é¢é£ããŠèª¬æããçããã®ã«ãã©ãŒã«ããã¯ããŸã
ããã©ã«ãã¯ãèšè¿°ãã§ãã
転èŠ
Subversion ã§ã¯ãirkerhook.py 㯠--repository ãªãã·ã§ã³ã«å€ (絶察
Subversion ãªããžããªã®ãã¹å) ãš commit åŒæ° (ãªããžã§ã³ ã¬ãã«ã®æ°å€)
ã³ãããã®ïŒã ããã©ã«ãã¯ãããããçŸåšã®äœæ¥ãã£ã¬ã¯ããªãš HEAD ã§ãã
ãã ãã次ã®ããšã«æ³šæããŠãã ããã Subversion å ã®ããã©ã«ãã®ãªããžããªåŒæ°
ãã¹ãã³ãããããã¯; ããã¯ãSubversion ã®å¶éã«ãããã®ã§ãã
çŸåšã®ãã£ã¬ã¯ããªã¯ããããã®ããã¯å ã§ã¯ä¿¡é Œã§ããŸããã 代ããã«ãå€ã¯ XNUMX ã€ã§ãªããã°ãªããŸãã
Subversion ããã®ããã¯ã«åŒæ°ãšããŠæž¡ãåŒæ°ã ãããã£ãŠãå žåçãªåŒã³åºã
ã³ãããåŸã®ã¹ã¯ãªããã¯æ¬¡ã®ããã«ãªããŸãã
ã¬ã=$1
REV=$2
irkerhook.py --repository=$REPO $REV
ä»ã® --variable=value èšå®ãã³ãã³ãã©ã€ã³ã§æå®ã§ããäžæžããããŸã
irker.conf ãã¡ã€ã«å ã®ãã¹ãŠã®èšå®ã
ãããžã§ã¯ãå€æ°ã®ããã©ã«ãã¯ããªããžããªã®ããŒã¹åã§ãã ããã©ã«ãå€
ãurlprefixãå€æ°ã®ãviewcvsãã§ãã
ãªããžããªã®ã«ãŒã ãã£ã¬ã¯ã㪠(ãã§ãã¯ã¢ãŠã ãã£ã¬ã¯ããªã§ã¯ãªã) ã« irker.conf ãã¡ã€ã«ãååšããå Žå
ãã ããããã©ãŒãããããã¡ã€ã«ãªã©ã®å éšãååšããå Žå) ããã¯ã¯å€æ°ã解éããŸã
ããããèšå®ã ãã®ãããªãã¡ã€ã«ãã©ã®ããã«èŠãããã®äŸã次ã«ç€ºããŸãã
# irker ãããžã§ã¯ãã® irkerhook å€æ°èšå®
ãããžã§ã¯ã = ã¢ãŒã«ãŒ
ãã£ã³ãã« = irc://chat.freenode/irker,irc://chat.freenode/commits
TCP = åœ
ãã®ãã¡ã€ã«ã«ããªããžããªããŸãã¯ãã³ããããå€æ°ãèšå®ããªãã§ãã ããã ããã¯äžå¹žã ã£ãã§ããã
çµæã
Subversion åºæã®å€æ°ã¯ãããŸããã
掻çº
Mercurial ã§ã¯ãirkerhook.py 㯠XNUMX ã€ã®æ¹æ³ã§åŒã³åºãããšãã§ããŸã: Python ããã¯ãšããŠ
(æšå¥š) ãŸãã¯ã¹ã¯ãªãããšããŠã
Python ããã¯ãšããŠåŒã³åºãã«ã¯ã"commit" ãŸã㯠"incoming" ããã¯ã«ä»¥äžãè¿œå ããŸãã
Mercurial ãªããžããªã§ã®å®£èš:
[ããã¯]
çä¿¡.irker = python:/path/to/irkerhook.py:hg_hook
ã¹ã¯ãªãããšããŠåŒã³åºããããšãããã¯ã¯ --repository ãªãã·ã§ã³ãšå€ (絶察
Mercurial ãªããžããªã®ãã¹å) ããã³ commit åŒæ° (Mercurial ããã·ã¥
ã³ãããã® ID ãŸãã¯ãããžã®åç §)ã ãªããžããªåŒæ°ã®ããã©ã«ãã¯
ã«ã¬ã³ããã£ã¬ã¯ããªã ããã©ã«ãã® commit åŒæ°ã¯ã-1ãã§ãçŸåšã®ãã³ããæå®ããŸã
ã³ãããã
git ã«é¢ããŠã¯ãã©ã¡ãã®å Žåãããã¹ãŠã®å€æ°ã [irker] å ã®ãªããžã㪠hgrc ãã¡ã€ã«ã«èšå®ã§ããŸãã
ã»ã¯ã·ã§ã³ã ã³ãã³ãã©ã€ã³ variable=value åŒæ°ã¯åãå ¥ããããŸãããã¹ã¯ãªããã«ã¯å¿ é ã§ã¯ãããŸãã
åŒã³åºãã irker.conf ãã¡ã€ã«ã®è§£éã¯è©Šã¿ãããŸããã
ããããžã§ã¯ããå€æ°ã®ããã©ã«ãå€ã¯ããªããžã㪠ãã£ã¬ã¯ããªã®ããŒã¹åã§ãã
ãurlprefixãå€æ°ã®ããã©ã«ãå€ã¯ããweb.baseurlãæ§æã®å€ã§ãã
å€ (ååšããå Žå)ã
ãã£ã«ã¿ãªã³ã°
irkerd ã«éä¿¡ããåã«ã³ãããããã£ã«ã¿ãªã³ã°ããããšãã§ããŸãã
ãæå®ããå¿ èŠããããŸã ãã£ã«ã¿ãŒã³ãã³ã ãã®ãªãã·ã§ã³ã¯ãirkerhook.py ãå®è¡ããã³ãã³ãã«ãªããŸãã
ãã®ã³ãã³ãã¯ãcommit ã® JSON è¡šçŸã§ãã XNUMX ã€ã®åŒæ°ãåãå ¥ããå¿ èŠããããŸãã
ãšã¯ã¹ãã©ã¯ã¿ ã¡ã¿ããŒã¿ (channels å€æ°ãå«ã)ã ã³ãã³ãã¯æšæºã«çºè¡ããå¿ èŠããããŸã
(å€æŽãããŠããå¯èœæ§ããã) ã¡ã¿ããŒã¿ã® JSON è¡šçŸãåºåããŸãã
以äžã¯ãã£ã«ã¿ãŒã®äŸã§ãã
#!/ usr / bin / env ãã€ãœã³
# ããã¯ã¡ã¿ããŒã¿ ãã£ã«ã¿ãŒã®ç°¡åãªäŸã§ãã
# ã³ãããã®äœæè ã®ååãå€æŽããã ãã§ãã
#
ã€ã³ããŒãsysãjson
ã¡ã¿ããŒã¿ = json.loads(sys.argv[1])
metadata['author'] = "å倧ã§ãã¯ãã«ãªãªãº"
å°å· json.ãã³ã(ã¡ã¿ããŒã¿)
ïŒ çµãã
æšæºãšã©ãŒã¯ãé²è¡ç¶æ³ãšãšã©ãŒ ã¡ãã»ãŒãžã®ããã¯ã§äœ¿çšã§ããŸãã
OPTIONS
irkerhook.py ã¯æ¬¡ã®ãªãã·ã§ã³ãåããŸã:
-n
ããŒã¢ã³ãžã®éä¿¡ãæå¶ããŸãã 代ããã«ãçæããã JSON ãªã¯ãšã¹ãã
æšæºåºåã ãããã°ã«åœ¹ç«ã¡ãŸãã
-V
ããã°ã©ã ã®ããŒãžã§ã³ã stdout ã«æžã蟌ã¿ãçµäºããŸãã
onworks.net ãµãŒãã¹ã䜿çšããŠãªã³ã©ã€ã³ã§ irkerhook ã䜿çšãã