diff options
Diffstat (limited to 'net-irc/irker/files')
5 files changed, 301 insertions, 0 deletions
diff --git a/net-irc/irker/files/2.17-irkerhook-Remove-file-listing.patch b/net-irc/irker/files/2.17-irkerhook-Remove-file-listing.patch new file mode 100644 index 000000000000..356bc9ae264f --- /dev/null +++ b/net-irc/irker/files/2.17-irkerhook-Remove-file-listing.patch @@ -0,0 +1,104 @@ +From a5fca5ebbede155329e44fd4b4a4268c0c86ff3f Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin <bertrand@jacquin.bzh> +Date: Mon, 7 Oct 2013 13:33:30 +0200 +Subject: [PATCH 2/2] irkerhook: Remove file listing + +--- + irkerhook.py | 28 +++------------------------- + 1 file changed, 3 insertions(+), 25 deletions(-) + +diff --git a/irkerhook.py b/irkerhook.py +index 18c9b01..0ba6834 100755 +--- a/irkerhook.py ++++ b/irkerhook.py +@@ -66,7 +66,6 @@ class Commit: + self.rev = None + self.mail = None + self.author = None +- self.files = None + self.logmsg = None + self.url = None + self.author_date = None +@@ -237,7 +236,7 @@ class GitExtractor(GenericExtractor): + self.channels = do("git config --get irker.channels") + self.email = do("git config --get irker.email") + self.tcp = do("git config --bool --get irker.tcp") +- self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s / %(bold)s%(files)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' ++ self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' + self.tinyifier = do("git config --get irker.tinyifier") or default_tinyifier + self.color = do("git config --get irker.color") + self.urlprefix = do("git config --get irker.urlprefix") or "gitweb" +@@ -286,9 +285,6 @@ class GitExtractor(GenericExtractor): + if self.urlprefix in ('gitweb', 'cgit'): + # Also truncate the commit used for the announced urls + commit.commit = commit.rev +- # Extract the meta-information for the commit +- commit.files = do("git diff-tree -r --name-only " + shellquote(commit.commit)) +- commit.files = " ".join(commit.files.strip().split("\n")[1:]) + # Design choice: for git we ship only the first message line, which is + # conventionally supposed to be a summary of the commit. Under + # other VCSes a different choice may be appropriate. +@@ -309,7 +305,7 @@ class SvnExtractor(GenericExtractor): + if tok.startswith("--repository="): + self.repository = tok[13:] + self.project = os.path.basename(self.repository) +- self.template = '%(bold)s%(project)s%(reset)s: %(green)s%(author)s%(reset)s %(repo)s * %(bold)s%(rev)s%(reset)s / %(bold)s%(files)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' ++ self.template = '%(bold)s%(project)s%(reset)s: %(green)s%(author)s%(reset)s %(repo)s * %(bold)s%(rev)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' + self.urlprefix = "viewcvs" + self.load_preferences(os.path.join(self.repository, "irker.conf")) + self.do_overrides() +@@ -323,7 +319,6 @@ class SvnExtractor(GenericExtractor): + commit.rev = "r%s" % self.id + commit.author = self.svnlook("author") + commit.commit_date = self.svnlook("date").partition('(')[0] +- commit.files = self.svnlook("dirs-changed").strip().replace("\n", " ") + commit.logmsg = self.svnlook("log").strip() + return commit + def svnlook(self, info): +@@ -367,7 +362,7 @@ class HgExtractor(GenericExtractor): + self.channels = ui.config('irker', 'channels') + self.email = ui.config('irker', 'email') + self.tcp = str(ui.configbool('irker', 'tcp')) # converted to bool again in do_overrides +- self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s / %(bold)s%(files)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' ++ self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' + self.tinyifier = ui.config('irker', 'tinyifier') or default_tinyifier + self.color = ui.config('irker', 'color') + self.urlprefix = (ui.config('irker', 'urlprefix') or +@@ -397,9 +392,6 @@ class HgExtractor(GenericExtractor): + commit.author_date = \ + datetime.datetime.fromtimestamp(ctx.date()[0]).strftime('%Y-%m-%d %H:%M:%S') + commit.logmsg = ctx.description() +- # Extract changed files from status against first parent +- st = self.repository.status(ctx.p1().node(), ctx.node()) +- commit.files = ' '.join(st[0] + st[1] + st[2]) + return commit + + def hg_hook(ui, repo, **kwds): +@@ -440,17 +432,6 @@ def ship(extractor, commit, debug): + sys.stderr.write("irkerhook.py: could not decode JSON: %s\n" % data) + raise SystemExit(1) + +- # Rewrite the file list if too long. The objective here is only +- # to be easier on the eyes. +- if extractor.cialike \ +- and extractor.cialike.lower() != "none" \ +- and len(metadata.files) > int(extractor.cialike): +- files = metadata.files.split() +- dirs = set([d.rpartition('/')[0] for d in files]) +- if len(dirs) == 1: +- metadata.files = "(%s files)" % (len(files),) +- else: +- metadata.files = "(%s files in %s dirs)" % (len(files), len(dirs)) + # Message reduction. The assumption here is that IRC can't handle + # lines more than 510 characters long. If we exceed that length, we + # try knocking out the file list, on the theory that for notification +@@ -458,9 +439,6 @@ def ship(extractor, commit, debug): + # there's nothing much can be done other than ship it expecting the IRC + # server to truncate. + privmsg = unicode(metadata) +- if len(privmsg) > 510: +- metadata.files = "" +- privmsg = unicode(metadata) + + # Anti-spamming guard. It's deliberate that we get maxchannels not from + # the user-filtered metadata but from the extractor data - means repo diff --git a/net-irc/irker/files/2.7-Register-author_name-as-author-instead-of-email-user.patch b/net-irc/irker/files/2.7-Register-author_name-as-author-instead-of-email-user.patch new file mode 100644 index 000000000000..a19da1f4a48d --- /dev/null +++ b/net-irc/irker/files/2.7-Register-author_name-as-author-instead-of-email-user.patch @@ -0,0 +1,32 @@ +From 108e898c600cf7a80a3d01a83a270c7579460b42 Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin <beber@meleeweb.net> +Date: Mon, 23 Sep 2013 23:10:23 +0200 +Subject: [PATCH 1/3] Register author_name as author instead of email userpart + +Signed-off-by: Bertrand Jacquin <beber@meleeweb.net> +--- + irkerhook.py | 11 ++--------- + 1 file changed, 2 insertions(+), 9 deletions(-) + +diff --git a/irkerhook.py b/irkerhook.py +index 5f15032..36a875e 100755 +--- a/irkerhook.py ++++ b/irkerhook.py +@@ -275,15 +275,8 @@ class GitExtractor(GenericExtractor): + # Design choice: for git we ship only the first message line, which is + # conventionally supposed to be a summary of the commit. Under + # other VCSes a different choice may be appropriate. +- commit.author_name, commit.mail, commit.logmsg = \ +- do("git log -1 '--pretty=format:%an%n%ae%n%s' " + shellquote(commit.commit)).split("\n") +- # This discards the part of the author's address after @. +- # Might be be nice to ship the full email address, if not +- # for spammers' address harvesters - getting this wrong +- # would make the freenode #commits channel into harvester heaven. +- commit.author = commit.mail.split("@")[0] +- commit.author_date, commit.commit_date = \ +- do("git log -1 '--pretty=format:%ai|%ci' " + shellquote(commit.commit)).split("|") ++ commit.logmsg = do("git log -1 '--pretty=format:%s' " + shellquote(commit.commit)) ++ commit.author = do("git log -1 '--pretty=format:%an' " + shellquote(commit.commit)) + return commit + + class SvnExtractor(GenericExtractor): diff --git a/net-irc/irker/files/2.7-irkerhook-Remove-file-listing.patch b/net-irc/irker/files/2.7-irkerhook-Remove-file-listing.patch new file mode 100644 index 000000000000..cbbb38c22ea6 --- /dev/null +++ b/net-irc/irker/files/2.7-irkerhook-Remove-file-listing.patch @@ -0,0 +1,105 @@ +From 82376d74107035950ef4181fdc889ae9409378b6 Mon Sep 17 00:00:00 2001 +From: Bertrand Jacquin <beber@meleeweb.net> +Date: Mon, 7 Oct 2013 13:33:30 +0200 +Subject: [PATCH 2/3] irkerhook: Remove file listing + +Signed-off-by: Bertrand Jacquin <beber@meleeweb.net> +--- + irkerhook.py | 34 +++------------------------------- + 1 file changed, 3 insertions(+), 31 deletions(-) + +diff --git a/irkerhook.py b/irkerhook.py +index 36a875e..f2f82cf 100755 +--- a/irkerhook.py ++++ b/irkerhook.py +@@ -57,7 +57,6 @@ class Commit: + self.rev = None + self.mail = None + self.author = None +- self.files = None + self.logmsg = None + self.url = None + self.author_date = None +@@ -224,7 +223,7 @@ class GitExtractor(GenericExtractor): + self.channels = do("git config --get irker.channels") + self.email = do("git config --get irker.email") + self.tcp = do("git config --bool --get irker.tcp") +- self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s / %(bold)s%(files)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' ++ self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' + self.tinyifier = do("git config --get irker.tinyifier") or default_tinyifier + self.color = do("git config --get irker.color") + self.urlprefix = do("git config --get irker.urlprefix") or "gitweb" +@@ -269,9 +268,6 @@ class GitExtractor(GenericExtractor): + commit.rev = do("git describe %s 2>/dev/null" % shellquote(commit.commit)) + if not commit.rev: + commit.rev = commit.commit[:12] +- # Extract the meta-information for the commit +- commit.files = do("git diff-tree -r --name-only " + shellquote(commit.commit)) +- commit.files = " ".join(commit.files.strip().split("\n")[1:]) + # Design choice: for git we ship only the first message line, which is + # conventionally supposed to be a summary of the commit. Under + # other VCSes a different choice may be appropriate. +@@ -292,7 +288,7 @@ class SvnExtractor(GenericExtractor): + if tok.startswith("--repository="): + self.repository = tok[13:] + self.project = os.path.basename(self.repository) +- self.template = '%(bold)s%(project)s%(reset)s: %(green)s%(author)s%(reset)s %(repo)s * %(bold)s%(rev)s%(reset)s / %(bold)s%(files)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' ++ self.template = '%(bold)s%(project)s%(reset)s: %(green)s%(author)s%(reset)s %(repo)s * %(bold)s%(rev)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' + self.urlprefix = "viewcvs" + self.load_preferences(os.path.join(self.repository, "irker.conf")) + self.do_overrides() +@@ -306,7 +302,6 @@ class SvnExtractor(GenericExtractor): + commit.rev = "r%s" % self.id + commit.author = self.svnlook("author") + commit.commit_date = self.svnlook("date").partition('(')[0] +- commit.files = self.svnlook("dirs-changed").strip().replace("\n", " ") + commit.logmsg = self.svnlook("log").strip() + return commit + def svnlook(self, info): +@@ -350,7 +345,7 @@ class HgExtractor(GenericExtractor): + self.channels = ui.config('irker', 'channels') + self.email = ui.config('irker', 'email') + self.tcp = str(ui.configbool('irker', 'tcp')) # converted to bool again in do_overrides +- self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s / %(bold)s%(files)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' ++ self.template = '%(bold)s%(project)s:%(reset)s %(green)s%(author)s%(reset)s %(repo)s:%(yellow)s%(branch)s%(reset)s * %(bold)s%(rev)s%(reset)s: %(logmsg)s %(brown)s%(url)s%(reset)s' + self.tinyifier = ui.config('irker', 'tinyifier') or default_tinyifier + self.color = ui.config('irker', 'color') + self.urlprefix = (ui.config('irker', 'urlprefix') or +@@ -380,9 +375,6 @@ class HgExtractor(GenericExtractor): + commit.author_date = \ + datetime.datetime.fromtimestamp(ctx.date()[0]).strftime('%Y-%m-%d %H:%M:%S') + commit.logmsg = ctx.description() +- # Extract changed files from status against first parent +- st = self.repository.status(ctx.p1().node(), ctx.node()) +- commit.files = ' '.join(st[0] + st[1] + st[2]) + return commit + + def hg_hook(ui, repo, **kwds): +@@ -423,27 +415,7 @@ def ship(extractor, commit, debug): + sys.stderr.write("irkerhook.py: could not decode JSON: %s\n" % data) + raise SystemExit, 1 + +- # Rewrite the file list if too long. The objective here is only +- # to be easier on the eyes. +- if extractor.cialike \ +- and extractor.cialike.lower() != "none" \ +- and len(metadata.files) > int(extractor.cialike): +- files = metadata.files.split() +- dirs = set([d.rpartition('/')[0] for d in files]) +- if len(dirs) == 1: +- metadata.files = "(%s files)" % (len(files),) +- else: +- metadata.files = "(%s files in %s dirs)" % (len(files), len(dirs)) +- # Message reduction. The assumption here is that IRC can't handle +- # lines more than 510 characters long. If we exceed that length, we +- # try knocking out the file list, on the theory that for notification +- # purposes the commit text is more important. If it's still too long +- # there's nothing much can be done other than ship it expecting the IRC +- # server to truncate. + privmsg = unicode(metadata) +- if len(privmsg) > 510: +- metadata.files = "" +- privmsg = unicode(metadata) + + # Anti-spamming guard. It's deliberate that we get maxchannels not from + # the user-filtered metadata but from the extractor data - means repo diff --git a/net-irc/irker/files/irkerd.confd b/net-irc/irker/files/irkerd.confd new file mode 100644 index 000000000000..42ae7323612a --- /dev/null +++ b/net-irc/irker/files/irkerd.confd @@ -0,0 +1,20 @@ +# /etc/conf.d/irkerd: config file for /etc/init.d/irkerd + +# Nick-Serv login +# IRKERD_NICK="" + +# Nick-Server password +# IRKERD_PASSWORD="" + +# Log file, if none syslog is used (facility daemon) +# IRKERD_LOGFILE="" + +# Debug Level (critical, error, warning, info, debug) +# IRKERD_LOGLEVEL="" + +# To run an anonymous irkerd safely. It should not be able +# to write to anywhere on your system +# IRKERD_USER="" + +# see man pages for irkerd for valid cmdline options +# IRKERD_OPTS="" diff --git a/net-irc/irker/files/irkerd.initd b/net-irc/irker/files/irkerd.initd new file mode 100644 index 000000000000..6417d45ebf8e --- /dev/null +++ b/net-irc/irker/files/irkerd.initd @@ -0,0 +1,40 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +: ${pidfile:=/run/${RC_SVCNAME}.pid} + +: ${IRKERD_NICK:=} +: ${IRKERD_PASSWORD:=} +: ${IRKERD_USER:=nobody} + +depend() { + use net +} + +start () { + if [[ ${IRKERD_LOGFILE} ]] ; then + checkpath -f \ + -o "${IRKERD_USER}" \ + "${IRKERD_LOGFILE}" \ + || return 1 + fi + + if [[ -z "${IRKERD_USER}" ]] ; then + die "IRKERD_USER is mandatory" + fi + + [[ -n "${IRKERD_LOGLEVEL}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -d ${IRKERD_LOGLEVEL}" + [[ -n "${IRKERD_LOGFILE}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -l ${IRKERD_LOGFILE}" + [[ -n "${IRKERD_NICK}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -n ${IRKERD_NICK}" + [[ -n "${IRKERD_PASSWORD}" ]] && IRKERD_OPTS="${IRKERD_OPTS} -p ${IRKERD_PASSWORD}" + + ebegin "Starting ${RC_SVCNAME}" + start-stop-daemon --start \ + --quiet --background \ + --user "${IRKERD_USER}" \ + --make-pidfile --pidfile "${pidfile}" \ + --exec /usr/bin/irkerd \ + -- ${IRKERD_OPTS} < /dev/null + eend $? +} |