diff options
| author | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2018-06-24 11:00:21 +0200 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2018-06-24 11:05:43 +0200 |
| commit | a2727dc7612bd08f8171267139f01d22cf3af59c (patch) | |
| tree | 948779e53239f2efdf5ed6db5befbcccfe6797da /.config | |
| parent | 843856e9fbedb0eb67dfbeb57aec4524afdda3bd (diff) | |
| download | dotfiles-a2727dc7612bd08f8171267139f01d22cf3af59c.tar.xz | |
Add Terminator plugin to make bug references clickable on OpenSUSE
Diffstat (limited to '.config')
| -rw-r--r-- | .config/terminator/plugins/susechangelog.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/.config/terminator/plugins/susechangelog.py b/.config/terminator/plugins/susechangelog.py new file mode 100644 index 0000000..24b9f17 --- /dev/null +++ b/.config/terminator/plugins/susechangelog.py @@ -0,0 +1,57 @@ +'''Terminator plugin to make bug references clickable in RPM changelogs.''' + +import re +from terminatorlib.plugin import URLHandler + + +AVAILABLE = ['BugzillaSuseURLHandler', 'FreedesktopURLHandler'] + + +def _delimited(regex): + return r'\b'+regex+r'\b' + + +# TODO: refactor, there are probably more elegant ways to re-use behaviour than +# class attributes. + + +class _ReferenceHandler(URLHandler): + capabilities = ['url_handler'] + _delimiter = '#' + + def __init__(self, *args, **kwargs): + self.match = _delimited(self._prefix+self._delimiter+self._id) + super(_ReferenceHandler, self).__init__(*args, **kwargs) + + def callback(self, ref): + bug_id = re.search(self._id, ref).group() + url = self._template.format(bug_id) + return url + + +class BugzillaSuseURLHandler(_ReferenceHandler): + handler_name = 'bugzilla.suse.com' + _prefix = 'bsc' + _id = '[0-9]+(#c[0-9]+)?' + _template = 'https://bugzilla.suse.com/show_bug.cgi?id={}' + + +class FreedesktopURLHandler(_ReferenceHandler): + handler_name = 'bugs.freedesktop.org' + _prefix = 'fdo' + _id = '[0-9]+' + _template = 'https://bugs.freedesktop.org/show_bug.cgi?id={}' + + +# Other ideas from gtk3-devel's changelog: +# bgo#N +# bmo#N +# bnc#N +# bog#N +# boo#N +# bsc#N +# bug#N +# commit#X +# [Ff]ate#N +# glgo#GNOME/GTK#N +# kde#N |
