dotfiles

🎜 Clone'em, tweak'em, stick'em in your $HOME 🎝
git clone https://git.kevinlegouguec.net/dotfiles
Log | Files | Refs | README

susechangelog.py (1225B)


      1 '''Terminator plugin to make bug references clickable in RPM changelogs.'''
      2 
      3 import re
      4 from terminatorlib.plugin import URLHandler
      5 
      6 
      7 AVAILABLE = ['SuseTrackersURLHandler']
      8 
      9 
     10 _TRACKERS = {
     11     'bgo': 'https://bugzilla.gnome.org/show_bug.cgi?id={}',
     12     'bmo': 'https://bugzilla.mozilla.org/show_bug.cgi?id={}',
     13     'bnc': 'https://bugzilla.novell.com/show_bug.cgi?id={}',
     14     'boo': 'https://bugzilla.opensuse.org/show_bug.cgi?id={}',
     15     'bsc': 'https://bugzilla.suse.com/show_bug.cgi?id={}',
     16     'fate': 'https://features.opensuse.org/{}',
     17     'fdo': 'https://bugs.freedesktop.org/show_bug.cgi?id={}',
     18     'glgo#gnome/gtk': 'https://gitlab.gnome.org/GNOME/gtk/issues/{}',
     19     'kde': 'https://bugs.kde.org/show_bug.cgi?id={}'
     20 }
     21 
     22 _PATTERN = r'(?i)(?P<tracker>{t})#(?P<id>{i})'.format(
     23     t='|'.join(_TRACKERS),
     24     i='[0-9]+(?:#c[0-9]+)?'
     25 )
     26 
     27 _REGEX = re.compile(_PATTERN)
     28 
     29 
     30 class SuseTrackersURLHandler(URLHandler):
     31     capabilities = ['url_handler']
     32     handler_name = 'suse_rpm_trackers'
     33     match = r'\b'+_PATTERN+r'\b'
     34 
     35     def callback(self, ref):
     36         fields = _REGEX.match(ref).groupdict()
     37         template = _TRACKERS[fields['tracker'].lower()]
     38         bug_id = fields['id']
     39         return template.format(bug_id)