āļāļĩāđāļāļ·āļāļāļģāļŠāļąāđāļ irkerhook-git āļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāđāļāļāļđāđāđāļŦāđāļāļĢāļīāļāļēāļĢāđāļŪāļŠāļāđāļāļĢāļĩāļāļāļ OnWorks āđāļāļĒāđāļāđāļŦāļāļķāđāļāđāļāđāļ§āļīāļĢāđāļāļŠāđāļāļāļąāļāļāļāļāđāļĨāļāđāļāļĢāļĩāļāļāļāđāļĢāļē āđāļāđāļ Ubuntu Online, Fedora Online, āđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ Windows āļŦāļĢāļ·āļāđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ MAC OS
āđāļāļĢāļāļāļēāļĢ:
āļāļ·āđāļ
irkerhook - āļŠāļāļĢāļīāļāļāđ hook āļāļĩāđāđāļāđāļāļāļĩāđāļāļāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļ irker
āđāļĢāļ·āđāļāļāļĒāđāļ
irkerhook.py [-āļ] [-āļ§āļĩ] [[--āļāļąāļ§āđāļāļĢ=āļāđāļē-āļĢāļŦāļąāļŠāļāļāļĄāļĄāļīāļāļāļąāļ-
DESCRIPTION
irkerhook.py āđāļāđāļāļŠāļāļĢāļīāļāļāđ Python āļāļĩāđāļĄāļĩāļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāđāļāļ·āđāļāđāļĢāļĩāļĒāļāđāļāđāļāļēāļ hook āļŦāļĨāļąāļāļāļēāļĢāļāļāļĄāļĄāļīāļāļāļāļa
āļāļĩāđāđāļāđāļāļāļēāļĢāļāļ§āļāļāļļāļĄāđāļ§āļāļĢāđāļāļąāļ āļŦāļāđāļēāļāļĩāđāļāļāļāļĄāļąāļāļāļ·āļāļĢāļ§āļāļĢāļ§āļĄāļāđāļāļĄāļđāļĨāđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāļāļĢāļ°āļāļģāļāļĩāđāđāļĨāđāļāļāļ
āđāļāđāļ (āđāļĨāļ°āļāļēāļāļāļģāļŦāļāļāļāļēāļĢāļāļąāđāļāļāđāļēāđāļāļĒāđāļāđāļēāļāļāļāļāļ·āđāļāļāļĩāđāđāļāđāļāļāđāļāļĄāļđāļĨ) āđāļĨāļ°āļŠāđāļāļāđāļāļĄāļđāļĨāļāļąāđāļ
āđāļāļ·āđāļāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļ irkerd āđāļāļ·āđāļāļŠāđāļāļāđāļāđāļāļĒāļąāļāļāđāļāļāļāļēāļāļāļĢāļ°āļāļēāļĻāļāđāļēāļāđ
āļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāđāļĨāļ°āļāļĪāļāļīāļāļĢāļĢāļĄāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄāļāļāļ irkerhook.py āļāļąāđāļāđāļāļāļāđāļēāļāļāļąāļāđāļāļāļķāđāļāļāļĒāļđāđāļāļąāļVCS
(āļĢāļ°āļāļāļāļ§āļāļāļļāļĄāļĢāļļāđāļ) āļāļģāļĨāļąāļāđāļĢāļĩāļĒāļāļĄāļąāļāļ§āđāļē āļĄāļĩāļŠāļāļēāļāļāļĩāđāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļāļŠāļĩāđāđāļŦāđāļāļāļķāđāļāļāļēāļ
āļāļķāļāļāđāļāļĄāļđāļĨ:
1. āđāļāļĢāđāļāļĒāļąāļāđāļāļĢāđāļāļĢāļĄāļāļĢāļĢāļāļāļĢāļ°āđāļĒāļāļāđ VCS
2. āđāļ VCSes āđāļāđāļ git āļāļĩāđāļĢāļāļāļĢāļąāļāļāļąāļ§āđāļāļĢāļāļēāļĢāļāļģāļŦāļāļāļāđāļēāļāļĩāđāļāļđāđāđāļāđāļāļąāđāļāļāđāļēāđāļāđ āļāļąāļ§āđāļāļĢ with
āļāļģāļāļģāļŦāļāđāļē "irker".
3. āđāļ VCS āļāļ·āđāļ āđāļāļĨāđāļāļēāļĢāļāļģāļŦāļāļāļāđāļē "irker.conf" āļāļĒāļđāđāđāļāļ āļēāļĒāđāļāļāļāļāļāļĩāđāđāļāđāļ
āđāļāđāļĢāļāļāļāļĢāļĩ
4. āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļāļāļāļāđāļāļāļāļāļĢāđāļĄ --variable=value
āļāļąāļ§āđāļāļĢāļāđāļāđāļāļāļĩāđāđāļāđāļāļāļąāļ§āđāļāļĢāļāļąāđāļ§āđāļāļŠāļģāļŦāļĢāļąāļ VCS āļāļĩāđāļĢāļāļāļĢāļąāļāļāļąāđāļāļŦāļĄāļ:
āđāļāļĢāļāļāļēāļĢ
āļāļ·āđāļāđāļāļĢāļāļāļēāļĢ. āļāļ§āļĢāđāļāđāļāļāļąāļ§āļĢāļ°āļāļļāļāļĩāđāļāđāļāļāļāđāļēāļāļŠāļąāđāļ āļĄāļąāļāļāļ°āļāļĢāļēāļāļāļāļķāđāļ
āļāļĩāđāļāļļāļāđāļĢāļīāđāļĄāļāđāļāļāļāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļ
repo
āļāļ·āđāļāļāļāļāđāļāđāļĢāđāļāļāļāļĢāļĩāļĢāļ°āļāļąāļāļāļāļŠāļļāļāļāļāļāļāļĩāđāđāļāđāļ āļŦāļēāļāđāļĄāđāđāļāđāļĢāļ°āļāļļāđāļ§āđ āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļ·āļ a
āļāļąāļ§āļāļīāļĄāļāđāđāļĨāđāļāļāļāļāļāļ·āđāļāđāļāļĢāļāļāļēāļĢ
āļāđāļāļ
URL āļāđāļāļ IRC āļŦāļĢāļ·āļāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļāļąāđāļāļāđāļ§āļĒāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļļāļĨāļ āļēāļāļāļāļāļĢāļēāļĒāļāļēāļĢāđāļāļĩāļĒāļ§āļāļąāļ āļāļķāđāļāļĢāļ°āļāļļāļāđāļāļāļāļĩāđ
āļāļ°āļāđāļāļāļŠāđāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļ āļŦāļēāļāđāļĄāđāđāļāđāļĢāļ°āļāļļāđāļ§āđ āļāđāļēāļāļĩāļāļāļĨāļāđāļāļ·āļ freenode #commits
āļāđāļāļ
āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ
āđāļŪāļŠāļāđāļāļĩāđ irker daemon āļŠāđāļāļŠāļąāļāļāļēāļāđāļāđāļāđāļāļ·āļāļ āļāļđāļāļāļēāļāļŦāļ§āļąāļāđāļŦāđāļāļĒāļđāđ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļāđāļāđāļ "localhost"
āļāļĩāđāļĄāļĨ
āļŦāļēāļāļāļąāđāļāļāđāļēāđāļ§āđ āđāļŦāđāđāļāđāļāļĩāđāļĄāļĨāđāļāļ·āđāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢāđāļāļ TCP āļŦāļĢāļ·āļ UDP āļāđāļēāļāļĩāđāđāļāđāđāļāđāļāļāđāļē
āļāļĩāđāļāļĒāļđāđāļāļĩāđāļĄāļĨāđāļāđāļēāļŦāļĄāļēāļĒ
TCP
āļāđāļē "āļāļĢāļīāļ" āđāļŦāđāđāļāđ TCP āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢ āļāđāļē "āđāļāđāļ" āđāļŦāđāđāļāđ UDP āļāđāļēāđāļĢāļīāđāļĄāļāđāļāđāļāđāļ "āđāļāđāļ"
āļāļģāļāļģāļŦāļāđāļē URL
āļāļģāļāļģāļŦāļāđāļē URL āļāļļāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļŠāļģāļŦāļĢāļąāļ repo āļāļāļāļāļļāļ āđāļĄāļ·āđāļāđāļŠāđāļĢāļŦāļąāļŠāļāļēāļĢāļāļāļĄāļĄāļīāļāļāđāļāļāđāļēāļĒāļŠāļīāđāļāļāļĩāđ āļāļ§āļĢ
āļāļĩāđāđāļāļāļĩāđ CGI āļāļĩāđāļāļ°āđāļŠāļāļāļāļēāļĢāļāļāļĄāļĄāļīāļāļāđāļēāļ cgit, gitweb āļŦāļĢāļ·āļāļŠāļīāđāļāļāļĩāđāļāļĨāđāļēāļĒāļāļąāļ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļēāļāđāļāđāļāļēāļāđāļāđāļŦāļēāļāļāļļāļāļĄāļĩāļāļēāļĢāļāļąāđāļāļāđāļē gitweb/cgit āļāļąāđāļ§āđāļ
āļŦāļēāļāļāđāļēāļāļāļāļāļąāļ§āđāļāļĢāļāļĩāđāļāļ·āļ "āđāļĄāđāļĄāļĩ" āđāļŦāđāļŠāļĢāđāļēāļāļāļīāļĨāļāđ URL āđāļ commit
āļāļēāļĢāđāļāđāļāđāļāļ·āļāļāļāļ°āļāļđāļāļĢāļ°āļāļąāļ āļāđāļēāđāļ§āļāļĒāđāļĄāļāļāļĢāđāļāļ·āđāļ āđ āđāļāđāđāļāđ "cgit", "gitweb" āđāļĨāļ°
"viewcvs" āļāļķāđāļāļāļĒāļēāļĒāđāļāđāļāđāļāļĄāđāļāļĨāļ URL āļāļĩāđāļĄāļąāļāļāļ°āđāļāđāļāļēāļāđāļāđāļāļąāļāļĢāļ°āļāļāđāļŦāļĨāđāļēāļāļąāđāļ
āļĄāļēāļĒāļēāļāļĨāļāļļāļāļāļĩāđ "%(host)s" āđāļĨāļ° %(repo)s" āļāļēāļāđāļāļīāļāļāļķāđāļāđāļ URL āļāļĩāđ āļāļāļĩāļāļāļ·āļ
āļāļĒāļēāļĒāđāļāđāļ FQDN āļāļāļāđāļŪāļŠāļāđāļāļĩāđ irkerhook.py āļāļģāļāļēāļāļāļĒāļđāđ āļāļĒāđāļēāļāļŦāļĨāļąāļāļāļ·āļ
āļāļĒāļēāļĒāđāļāđāļāļāđāļēāļāļāļāļāļąāļ§āđāļāļĢ "repo"
āļāļąāļ§āļāļīāđāļ§
āđāļāļĄāđāļāļĨāļ URL āļāļĩāđāļāļĩāđāđāļāļāļĩāđāļāļĢāļīāļāļēāļĢāļŠāļģāļŦāļĢāļąāļāļāļĩāļāļāļąāļ URL āđāļāļ·āđāļāđāļŦāđāđāļāđāļāļ·āđāļāļāļĩāđāļāđāļāļĒāļĨāļ
āļāđāļāļāļ§āđāļēāļāđāļāļāļĢāļĢāļāļąāļāđāļāđāļāđāļāļ·āļāļ āļŦāļēāļāļāđāļēāļāļāļāļāļąāļ§āđāļāļĢāļāļĩāđāļāļ·āļ "āđāļĄāđāļĄāļĩ" āđāļŠāļāļāļ§āđāļēāđāļĄāđāļĄāļĩ
āļāļ°āļāļĒāļēāļĒāļēāļĄāļāļĩāļāļāļąāļ
āļŠāļĩ
āļŦāļēāļāđāļāđāļ "mIRC" āđāļŦāđāđāļŪāđāļĨāļāđāļāđāļāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļāļāđāļ§āļĒāļĢāļŦāļąāļŠāļŠāļĩ mIRC āļāđāļē "ANSI" āđāļāđāļ
āļāļīāļĨāļāđāļāļēāļĢāđāļāđāļāđāļāļ·āļāļāļāļĩāđāļĄāļĩāļĨāļģāļāļąāļāļŦāļĨāļĩāļāļāļāļāļŠāļĩ ANSI āļāđāļēāđāļĢāļīāđāļĄāļāđāļāđāļāđāļ "āđāļĄāđāļĄāļĩ" (āđāļĄāđāļĄāļĩāļŠāļĩ)
āļĢāļāļāļĢāļąāļāļĢāļŦāļąāļŠ ANSI āđāļ Chatzilla, irssi, ircle āđāļĨāļ° BitchX āļĢāļŦāļąāļŠ mIRC āđāļāđāļēāļāļąāđāļāļāļ·āļ
āđāļāđāļĢāļąāļāļāļēāļĢāļĒāļāļĄāļĢāļąāļāđāļ mIRC, XChat, KVirc, Konversation āļŦāļĢāļ·āļ weechat
āļŦāļĄāļēāļĒāđāļŦāļāļļ: āļŦāļēāļāļāļļāļāđāļāļīāļāļāļēāļĢāļāļąāđāļāļāđāļēāļāļĩāđāđāļĨāļ°āļāļēāļĢāđāļāđāļāđāļāļ·āļāļāļŦāļĒāļļāļāļāļĢāļēāļāļāļāļāļāđāļāļāļāļāļāļāļļāļ āļāļļāļāļāđāļāļ
āđāļāļ·āđāļāļāļīāļāļāļīāļĨāđāļāļāļĢāđāļŠāļĩāļāļāļ IRC āđāļāļāđāļāļāļāļąāđāļ āđāļāļāļēāļĢāļāļģāđāļāđāļāļāļĩāđāļāļļāļāļāļ°āļāđāļāļāđāļāđop
āļŠāļīāļāļāļīāļāļīāđāļĻāļĐ; āļāļāļāļāļģāļŠāļąāđāļ "/mode -c" āļāļąāļ āđāļāļāļāļĩāđāļāđāļ§āļĒāļāļāļāļāļļāļ
āļāļ·āđāļāļāđāļāļ. āļāļļāļāļāļēāļāļāđāļāļāļāļāļāļāļģāļŠāļąāđāļāļāđāļāļ "/msg chanserv set
MLOCK +nt-slk".
āļāđāļāļāļŠāļđāļāļŠāļļāļ
āļāļĩāļāļ§āļēāļĄāļ§āđāļēāđāļāđāļāļāļģāļāļ§āļāđāļāđāļĄ āļāđāļēāđāļĄāđāđāļāđāļāļĻāļđāļāļĒāđ āļāļģāļāļąāļāļāļģāļāļ§āļāļāđāļāļāļāļĩāđāđāļāđāļāļāļ°
āļāļĩāļāļ§āļēāļĄāļāļēāļāļāļąāļ§āđāļāļĢ "āļāđāļāļ"
āļāļąāļ§āđāļāļĢāļāļĩāđāđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļąāđāļāļāđāļēāļāđāļēāļāļāļąāļ§āđāļāļĢāļāļāļāļāļīāļāļđāđāļĢāļāļąāļ VCS āļŦāļĢāļ·āļ irker.conf āļĄāļąāļāļŠāļēāļĄāļēāļĢāļ
āļāļąāđāļāļāđāļēāļāđāļ§āļĒāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļāđāļāđāļēāļāļąāđāļ āļāļąāļāļāļąāđāļāđāļāđāļāļāđāļāļĨāļāļĄāļāļķāđāļāļāļĩāđāđāļāđāļ
āđāļāđāļēāļāļāļāđāļĄāđāđāļāđāļĢāļąāļāļāļāļļāļāļēāļāđāļŦāđāđāļāđāđāļāļŠāļāļĢāļīāļāļāđāļŦāļĨāļąāļāļāļēāļĢāļāļāļĄāļĄāļīāļ āļāļđāđāļāļđāđāļĨāđāļāļāđāļŠāļēāļĄāļēāļĢāļ
āļāļąāđāļāļāđāļēāđāļŦāđāļāđāļāļāļāļąāļāļāļ·āļāļĨāļđāļāļāļāļāļŠāđāļāļŠāđāļāļĄāđāļāļĒāđāļāđāļēāļāļāļāđāļāļĢāļāļāļēāļĢāļāļĩāđāđāļāđāļāļāļąāļāļāļĢāļēāļĒ āļāļēāļĢāļāļąāđāļāļāđāļēāđāļŦāđāđāļāđāļāļāđāļē
āļāđāļāļĒāļāļ§āđāļē 2 āđāļāđāļāļēāļāļāļ°āđāļĄāđāļāļĨāļēāļ
āđāļāļĩāļĒāđāļĨāļāđ
āļŦāļēāļāđāļĄāđāļ§āđāļēāļāđāļāļĨāđāļēāđāļĨāļ°āđāļĄāđāđāļāđ "āđāļĄāđāļĄāļĩ" (āļāđāļēāđāļĢāļīāđāļĄāļāđāļ) āļŠāļīāđāļāļāļĩāđāļāļ°āđāļĨāļĩāļĒāļāđāļāļāļāļĪāļāļīāļāļĢāļĢāļĄ CIA āđāļāļāđāļāđāļēāļāļāļ
āļ§āļēāļāļĢāļēāļĒāļāļēāļĢāđāļāļĨāđāđāļāļāļĒāļēāļ§āđāļāļ·āđāļāļŠāļāļąāļāļŠāļāļļāļāļāļāļŠāļĢāļļāļāļāļāļāđāļāļāļāļāļĢāđāļĄ (āđāļāļĨāđ N āđāļ M
āđāļāđāļĢāđāļāļāļāļĢāļĩ) āļāđāļēāļāđāļāļāđāļāđāļāļāļąāļ§āđāļĨāļāļāļĩāđāļāļģāļŦāļāļāļāđāļēāļāļĩāļāļāļģāļāļąāļāļŠāļģāļŦāļĢāļąāļāļāļ§āļēāļĄāļĒāļēāļ§āļāļāļ
āļĢāļēāļĒāļāļēāļĢāđāļāļĨāđāđāļāđāļāļāļąāļ§āļāļąāļāļĐāļĢ
āļāļāļĄāđāļāļĨāđ
āļ āļēāļĒāđāļāđ git āļ§āļīāļāļĩāļāļāļāļīāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđ hook āļāļĩāđ (āļāļēāļāļ āļēāļĒāđāļ hook āļāļēāļĢāļāļąāļāđāļāļ) āļāļ°āļŠāđāļāļāđāļēāļ a
refname āļāļēāļĄāļāđāļ§āļĒāļĢāļēāļĒāļāļēāļĢāļāļāļĄāļĄāļīāļ āđāļāļĢāļēāļ° āļāļāļĄāđāļāļĨāđ āļĢāļēāļĒāļāļēāļĢāļĢāļāļ āļāļāļāļīāļĢāļēāļĒāļāļēāļĢāļāļēāļāļŠāđāļ§āļāđāļŦāļāđ
āļĨāđāļēāļŠāļļāļāđāļāđāļāđāļēāļāļĩāđāļŠāļļāļ āļāļļāļāļāļ°āļāđāļāļāđāļāđ --reverse āđāļāļ·āđāļāļĨāļ°āđāļ§āđāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļāđāļ
āļĨāļģāļāļąāļāđāļ§āļĨāļē āđāļāļŠāļāļĢāļīāļāļāđāļāļąāļāđāļāļāļāļāļāļī āļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļ§āļĢāļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļąāļāļāļĩāđ
āļāļ·āđāļāļāļđāđāļāđāļēāļāļāļīāļ = $1
āđāļāđāļē=$2
āđāļŦāļĄāđ=$3
irkerhook.py --refname=${refname} $(git rev-list --reverse ${old}..${āđāļŦāļĄāđ})
āļĒāļāđāļ§āđāļāļ§āđāļēāļāļļāļāļāļ°āļāđāļāļāļĄāļĩāđāļŠāđāļāļāļēāļāļāļĩāđāđāļāđāļāļāļāļŠāļģāļŦāļĢāļąāļ irkerhook.py
āđāļāļ·āđāļāļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāđāļāļāļēāļĢāļāļāļŠāļāļāđāļĨāļ°āļāļ§āļēāļĄāđāļāđāļēāļāļąāļāđāļāđāđāļāļāļĒāđāļāļāļŦāļĨāļąāļ āļŦāļēāļāļāļļāļāđāļĢāļĩāļĒāļāđāļāđ irkerhook.py āđāļāļĒāđāļĄāđāļĄāļĩ
āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđ (āđāļāđāļāđāļāļāļ°āļāļāļŦāļĨāļąāļāļāļēāļĢāļāļāļĄāļĄāļīāļ) āļĄāļąāļāļāļ°āļāļģāļāļąāļ§āļĢāļēāļ§āļāļąāļāļ§āđāļēāļĄāļąāļāļāļđāļāđāļĢāļĩāļĒāļāļ§āđāļēāđāļŦāļĄāļ·āļāļ
āļāļĩāđ:
irkerhook.py --refname=refs/heads/master HEAD
āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āļŠāļīāđāļāļāļĩāđāļāļ°āđāļĄāđāđāļŦāđāļāļĨāļĨāļąāļāļāđāļāļĩāđāļāļđāļāļāđāļāļāđāļĄāļ·āđāļāļāļļāļāļāļāđāļāļĒāļąāļāļŠāļēāļāļēāļāļĩāđāđāļĄāđāđāļāđāļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļāļa
repo āđāļāļĨāđāļē
āļ§āļīāļāļĩāļāļąāđāļ§āđāļāđāļāļāļēāļĢāļāļīāļāļāļąāđāļ hook āļāļĩāđāļāļĢāļīāļ āđ āđāļĨāđāļ§āđāļ hook āļŦāļĨāļąāļāļāļēāļĢāļĢāļąāļāđāļāļĢāļēāļ°āđāļāđāļĢāļąāļ
āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļĩāđāļāļģāđāļāđāļāļāļąāđāļāļŦāļĄāļāđāļĨāļ°āļāļ°āđāļĄāđāļĒāļāđāļĨāļīāļāļāļēāļĢāļāļĨāļąāļāļāļąāļāļāļ§āļēāļĄāļĨāđāļĄāđāļŦāļĨāļ§ āđāļāđāļŠāļīāđāļāļāđāļāđāļāļāļĩāđ
āļŠāļāļĢāļīāļāļāđ:
#!bin / sh /
echo "āļāļģāļĨāļąāļāļŠāđāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļ IRC"
āđāļāļāļāļ°āļāļĩāđāļāđāļēāļāļāļ·āđāļāđāļŦāļĄāđ refname āđāļāđāļē; āļāļģ
irkerhook --refname=${refname} $(git rev-list --reverse ${old}..${āđāļŦāļĄāđ})
āļāļģ
āđāļāļ·āđāļāļāļ§āļēāļĄāļŠāļ°āļāļ§āļ āļŠāļāļĢāļīāļāļāđāļāļąāļ§āļāđāļ§āļĒ irkerhook-git āļāļģāđāļāļīāļāļāļēāļĢāļāļĩāđ
āļāđāļēāļāļģāļŦāļāļāļāļēāļāļāļđāļāļāļąāđāļāļāđāļēāđāļāđāļāļĨāđāļāļģāļŦāļāļāļāđāļē repo āđāļāļŠāđāļ§āļ [irker] āļāļĩāđāļāļ·āļāļāļąāļ§āļāļĒāđāļēāļ
āļāļāļāļŠāļīāđāļāļāļĩāđāļŠāļēāļĄāļēāļĢāļāļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļąāļāļāļĩāđ:
[āđāļāļīāļĢāđāļāđāļāļāļĢāđ]
āđāļāļĢāļāļāļēāļĢ = gpsd
āļŠāļĩ = ANSI
āļāđāļāļ = irc://chat.freenode.net/gpsd,irc://chat.freenode.net/commits
āļāļļāļāđāļĄāđāļāļ§āļĢāļāļąāđāļāļāđāļēāļāļąāļ§āđāļāļĢ "repository" (āļāļ°āļāļģāļāļ§āļāđāļāļĩāļĒāļāđāļāđāļē) āđāļĄāđāļĄāļĩāļāļ§āļēāļĄāļāļĒāļēāļĒāļēāļĄ
āļāļģāļāļķāđāļāđāļāļ·āđāļāđāļāļĨāđāļāļĨāđ irker.conf
āļāđāļēāļāļĩāļāļāļĨāļāđāļāļāļāļāļąāļ§āđāļāļĢ "project" āļāļ·āļāļāļ·āđāļāļāļ·āđāļāļāļēāļāļāļāļāđāļāđāļĢāđāļāļāļāļĢāļĩāļāļĩāđāđāļāđāļ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļāļāļāļąāļ§āđāļāļĢ "urlprefix" āļāļ·āļ "cgit"
āļĄāļĩāļāļąāļ§āđāļāļĢāđāļāļāļēāļ° git āļŦāļāļķāđāļāļāļąāļ§āļāļ·āļ "revformat" āļāļĩāđāļāļ§āļāļāļļāļĄāļĢāļđāļāđāļāļāļāļāļ commit
āļāļąāļ§āļĢāļ°āļāļļāđāļāļāļēāļĢāđāļāđāļāđāļāļ·āļāļ āļāļēāļāļĄāļĩāļāđāļēāļāļąāļāļāđāļāđāļāļāļĩāđ:
āļāļīāļ
āļĢāļŦāļąāļŠāļāļēāļāļŠāļīāļāļŦāļāđāļāđāļĄāļāļāļāļāļēāļĢāļāļĢāļ°āļāļģ
Short
āļĢāļŦāļąāļŠāđāļĨāļāļāļēāļāļŠāļīāļāļŦāļ 12 āļāļąāļ§āđāļĢāļ
āļāļĢāļĢāļĒāļēāļĒ
āļāļāļīāļāļēāļĒāļŠāļąāļĄāļāļąāļāļāđāļāļąāļāđāļāđāļāļŠāļļāļāļāđāļēāļĒ āļāļāļĒāļāļĨāļąāļāđāļāļŠāļąāđāļ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļ·āļ 'āļāļāļīāļāļēāļĒ'
āļāļēāļĢāđāļāđāļāļĨāđāļĄ
āļ āļēāļĒāđāļāđāļāļēāļĢāđāļāđāļāļĨāđāļĄ irkerhook.py āļĒāļāļĄāļĢāļąāļ --repository āļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāļĄāļĩāļāđāļē (āļāđāļēāļŠāļąāļĄāļāļđāļĢāļāđ
āļāļ·āđāļāļāļēāļāļāļāļāļāļĩāđāđāļāđāļ Subversion) āđāļĨāļ°āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļāļĄāļĄāļīāļ (āļĢāļ°āļāļąāļāļāļēāļĢāđāļāđāđāļāļāļąāļ§āđāļĨāļ
āļāļāļāļ āļēāļĢāļ°āļāļđāļāļāļąāļ) āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļ·āļāđāļāđāļĢāđāļāļāļāļĢāļĩāļāļēāļĢāļāļģāļāļēāļāļāļąāļāļāļļāļāļąāļāđāļĨāļ° HEAD āļāļēāļĄāļĨāļģāļāļąāļ
āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āđāļāļĢāļāļāļĢāļēāļāļ§āđāļēāļāļļāļ āđāļĄāđāđāļāđ āđāļĢāļīāđāļĄāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāđāļāđāļāļ āļēāļĒāđāļ Subversion
āļāļ°āļāļāļŦāļĨāļąāļāļāļĢāļ°āļāļģ; āļāļĩāđāđāļāđāļāđāļāļĢāļēāļ°āļāđāļāļāļģāļāļąāļāļāļāļāļāļēāļĢāđāļāđāļāļĨāđāļĄ āļāļķāđāļāļāđāļāļ·āļāļāļēāļĢāđāļāđāļĢāļąāļ
āđāļāđāļĢāļāļāļāļĢāļĩāļāļąāļāļāļļāļāļąāļāđāļĄāđāļāđāļēāđāļāļ·āđāļāļāļ·āļāļ āļēāļĒāđāļ hooks āđāļŦāļĨāđāļēāļāļĩāđ āđāļāļ āļāđāļēāļāđāļāļāđāļāđāļ two
āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāļāļēāļĢāđāļāđāļāļĨāđāļĄāļŠāđāļāļāđāļēāļāđāļāļĒāļąāļāđāļāđāļāļāļąāđāļāđāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđ āļāļąāļāļāļąāđāļ āļāļēāļĢāđāļĢāļĩāļĒāļāđāļāļĒāļāļąāđāļ§āđāļāđāļ
āļŠāļāļĢāļīāļāļāđāļŦāļĨāļąāļāļāļēāļĢāļāļāļĄāļĄāļīāļāļāļ°āļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļąāļāļāļĩāđ:
REPO = 1 āļāļāļĨāļĨāļēāļĢāđ
REV=$2
irkerhook.py --repository=$REPO $REV
āļāļ·āđāļ āđ --variable=value āļāļēāļĢāļāļąāđāļāļāđāļēāļāļēāļāđāļāđāļĢāļąāļāđāļāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļāđāļĨāļ°āļāļ°āđāļāļāļāļĩāđ
āļāļēāļĢāļāļąāđāļāļāđāļēāđāļ āđ āđāļāđāļāļĨāđ irker.conf
āļāđāļēāļāļĩāļāļāļĨāļāđāļŠāļģāļŦāļĢāļąāļāļāļąāļ§āđāļāļĢāđāļāļĢāđāļāđāļāļāđāļāļ·āļāļāļ·āđāļāļāļēāļāļāļāļāļāļĩāđāđāļāđāļ āļāđāļēāđāļĢāļīāđāļĄāļāđāļ
āļāļāļāļāļąāļ§āđāļāļĢ "urlprefix" āļāļ·āļ "viewcvs"
āļŦāļēāļāļĄāļĩāđāļāļĨāđ irker.conf āđāļāđāļāđāļĢāđāļāļāļāļĢāļĩāļĢāļēāļāļāļāļāļāļĩāđāđāļāđāļ (āđāļĄāđāđāļāđāđāļāđāļĢāđāļāļāļāļĢāļĩāļāļēāļĢāđāļāđāļāđāļāļēāļāđ
āđāļāđāļāļĩāđ internals āđāļāđāļāđāļāļĨāđ "āļĢāļđāļāđāļāļ" āļĄāļĩāļāļĩāļ§āļīāļāļāļĒāļđāđ) āđāļāđāļāļāļ°āļāļĩāļāļ§āļēāļĄāļāļąāļ§āđāļāļĢ
āļāļēāļĢāļāļąāđāļāļāđāļēāļāļēāļāļĄāļąāļ āļāļĩāđāļāļ·āļāļāļąāļ§āļāļĒāđāļēāļāļĨāļąāļāļĐāļāļ°āļāļāļāđāļāļĨāđāļāļąāļāļāļĨāđāļēāļ§:
# āļāļēāļĢāļāļąāđāļāļāđāļēāļāļąāļ§āđāļāļĢ irkerhook āļŠāļģāļŦāļĢāļąāļāđāļāļĢāļāļāļēāļĢ irker
āđāļāļĢāļāļāļēāļĢ = irker
āļāđāļāļ = irc://chat.freenode/irker,irc://chat.freenode/commits
tcp = āđāļāđāļ
āļāļĒāđāļēāļāļąāđāļāļāđāļēāļāļąāļ§āđāļāļĢ "repository" āļŦāļĢāļ·āļ "commit" āđāļāđāļāļĨāđāļāļĩāđ āļāļĩāđāļāļ°āđāļĄāđāļĄāļĩāļāļ§āļēāļĄāļŠāļļāļ
āļāļĨ.
āđāļĄāđāļĄāļĩāļāļąāļ§āđāļāļĢāđāļāļāļēāļ°āļāļēāļĢāđāļāđāļāļĨāđāļĄ
āļŦāļĨāļēāļĒāđāļ
āļ āļēāļĒāđāļāđ Mercurial irkerhook.py āļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāđāļāđāļŠāļāļāļ§āļīāļāļĩ: āđāļĄāđāļ§āđāļēāļāļ°āđāļāđāļ Python hook
(āļāļ°āļāļīāļāļēāļĢāļāļēāđāļāđāļāļāļīāđāļĻāļĐ) āļŦāļĢāļ·āļāđāļāđāļāļŠāļāļĢāļīāļāļāđ
āļŦāļēāļāļāđāļāļāļāļēāļĢāđāļĢāļĩāļĒāļāļĄāļąāļāļ§āđāļē Python hook āđāļŦāđāđāļāļīāđāļĄ collowing āđāļāļāļĩāđ "commit" āļŦāļĢāļ·āļ "incoming" hook
āļāļĢāļ°āļāļēāļĻāđāļāļāļĩāđāđāļāđāļ Mercurial āļāļāļāļāļļāļ:
[āļāļ°āļāļ]
incoming.irker = āļŦāļĨāļēāļĄ:/path/to/irkerhook.py:hg_hook
āđāļĄāļ·āđāļāđāļĢāļĩāļĒāļāđāļāđāļāļŠāļāļĢāļīāļāļāđ hook āļĒāļāļĄāļĢāļąāļāļāļąāļ§āđāļĨāļ·āļāļ --repository āļāļĩāđāļĄāļĩāļāđāļē (āļāđāļēāļŠāļąāļĄāļāļđāļĢāļāđ
āļāļ·āđāļāļāļēāļāļāļāļāļāļĩāđāđāļāđāļ Mercurial) āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļĢāļąāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāļāļāļĄāļĄāļīāļāđāļāđ (the Mercurial hash
ID āļāļāļāļāļēāļĢāļāļĢāļ°āļāļģāļŦāļĢāļ·āļāļāļēāļĢāļāđāļēāļāļāļīāļ) āļāđāļēāļāļĩāļāļāļĨāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāđāļāđāļāļāļ·āļ
āđāļāđāļĢāļāļāļāļĢāļĩāļāļąāļāļāļļāļāļąāļ āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļēāļĢāļāļāļĄāļĄāļīāļāđāļĢāļīāđāļĄāļāđāļāļāļ·āļ '-1' āļāļķāđāļāļāļģāļŦāļāļāļāļīāļāļāļąāļāļāļļāļāļąāļ
āļāļĢāļ°āļāļģ
āļŠāļģāļŦāļĢāļąāļ git āđāļāļāļąāđāļāļŠāļāļāļāļĢāļāļĩ āļāļąāļ§āđāļāļĢāļāļąāđāļāļŦāļĄāļāļāļēāļāļāļđāļāļāļąāđāļāļāđāļēāđāļāđāļāļĨāđ repo hgrc āđāļ [irker]
āļŠāđāļ§āļ. āļĒāļāļĄāļĢāļąāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļāļāļąāļ§āđāļāļĢ=āļāđāļē āđāļāđāđāļĄāđāļāļģāđāļāđāļāļŠāļģāļŦāļĢāļąāļāļŠāļāļĢāļīāļāļāđ
āļ§āļīāļāļ§āļāļ āđāļĄāđāļĄāļĩāļāļēāļĢāļāļĒāļēāļĒāļēāļĄāļāļĩāļāļ§āļēāļĄāđāļāļĨāđ irker.conf
āļāđāļēāļāļĩāļāļāļĨāļāđāļāļāļāļāļąāļ§āđāļāļĢ "project" āļāļ·āļāļāļ·āđāļāļāļ·āđāļāļāļēāļāļāļāļāđāļāđāļĢāđāļāļāļāļĢāļĩāļāļĩāđāđāļāđāļ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļāļāļāļąāļ§āđāļāļĢ "urlprefix" āļāļ·āļāļāđāļēāļāļāļ "web.baseurl" config
āļāđāļē āļāđāļēāļĄāļĩ
āļāļĢāļāļ
āđāļāđāļāđāļāđāļāđāļāļĩāđāļāļ°āļāļĢāļāļāļāļēāļĢāļāļĢāļ°āļāļģāļāđāļāļāļāļĩāđāļāļ°āļŠāđāļāđāļāļĒāļąāļ irkerd
āļāļļāļāļāđāļāļāļĢāļ°āļāļļ cmd āļāļąāļ§āļāļĢāļāļ āļāļąāļ§āđāļĨāļ·āļāļāļāļķāđāļāļāļ°āđāļāđāļāļāļģāļŠāļąāđāļ irkerhook.py āļāļ°āļāļģāļāļēāļ
āļāļģāļŠāļąāđāļāļāļĩāđāļāļ§āļĢāļĒāļāļĄāļĢāļąāļāļŦāļāļķāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđ āļāļķāđāļāđāļāđāļāļāļąāļ§āđāļāļāļāļāļ JSON āļāļāļāļāļēāļĢāļāļāļĄāļĄāļīāļāđāļĨāļ°
āļāđāļāļĄāļđāļĨāđāļĄāļāļēāļāļāļāļāļąāļ§āđāļĒāļ (āļĢāļ§āļĄāļāļķāļāļāļąāļ§āđāļāļĢāļāđāļāļ) āļāļģāļŠāļąāđāļāļāļ§āļĢāļŠāđāļāđāļāļĒāļąāļāļĄāļēāļāļĢāļāļēāļ
āđāļŠāļāļāļāļĨāļāļēāļĢāđāļāļāļāđāļē JSON āļāļāļāļāđāļāļĄāļđāļĨāđāļĄāļāļē (āļāļēāļāļĄāļĩāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ)
āļāđāļēāļāļĨāđāļēāļāļāļĩāđāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļāļāļąāļ§āļāļĢāļāļ:
#!/usr/bin/env āļŦāļĨāļēāļĄ
# āļāļĩāđāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļāđāļĨāđāļāļāđāļāļĒāļāļāļāļāļąāļ§āļāļĢāļāļāļāđāļāļĄāļđāļĨāđāļĄāļāļē
# āļāļąāđāļāļŦāļĄāļāļāļĩāđāļāļģāļāļ·āļāđāļāļĨāļĩāđāļĒāļāļāļ·āđāļāļāļāļāļāļđāđāļāļĢāļ°āļāļģāļāļēāļĢāļāļāļĄāļĄāļīāļ
#
āļāļģāđāļāđāļēāļĢāļ°āļāļ json
āļāđāļāļĄāļđāļĨāđāļĄāļāļē = json.loads(sys.argv[1])
āļāđāļāļĄāļđāļĨāđāļĄāļāļē['āļāļđāđāđāļāļĩāļĒāļ'] = "āļāļāļāļāļđāđāļĒāļīāđāļāđāļŦāļāđāđāļĨāļ°āļāļĢāļāļāļĨāļąāļ"
āļāļīāļĄāļāđ json.dumps(āļāđāļāļĄāļđāļĨāđāļĄāļāļē)
# āļāļ
āļāđāļāļāļīāļāļāļĨāļēāļāļĄāļēāļāļĢāļāļēāļāļĄāļĩāļāļĒāļđāđāđāļāđāļāđāļāļŠāļģāļŦāļĢāļąāļāļāļ§āļēāļĄāļāļ·āļāļŦāļāđāļēāđāļĨāļ°āļāđāļāļāļ§āļēāļĄāđāļŠāļāļāļāđāļāļāļīāļāļāļĨāļēāļ
OPTIONS
irkerhook.py āđāļāđāļāļąāļ§āđāļĨāļ·āļāļāļāđāļāđāļāļāļĩāđ:
-n
āļĢāļ°āļāļąāļāļāļēāļĢāļŠāđāļāđāļāļĒāļąāļ daemon āđāļŦāđāļāļąāļĄāļāđāļāļģāļāļ JSON āļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļāđāļāļāļĩāđ
āđāļāļēāļāđāļāļļāļāļĄāļēāļāļĢāļāļēāļ āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļĩāļāļąāļ
-V
āđāļāļĩāļĒāļāđāļ§āļāļĢāđāļāļąāļāļāļāļāđāļāļĢāđāļāļĢāļĄāđāļāļāļĩāđ stdout āđāļĨāļ°āļĒāļļāļāļī
āđāļāđ irkerhook-git āļāļāļāđāļĨāļāđāđāļāļĒāđāļāđāļāļĢāļīāļāļēāļĢ onworks.net