File: trac-keywords.py

package info (click to toggle)
cppcheck 2.18.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 26,132 kB
  • sloc: cpp: 268,935; python: 20,890; ansic: 8,090; sh: 1,045; makefile: 1,008; xml: 1,005; cs: 291
file content (38 lines) | stat: -rw-r--r-- 903 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

import subprocess
import sys

TRACDB = 'trac.db'


def readdb():
    cmds = ['sqlite3', TRACDB, 'SELECT id,keywords FROM ticket WHERE status<>"closed";']
    with subprocess.Popen(cmds, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as p:
        # TODO: handle p.returncode?
        stdout, _ = p.communicate()
    data = stdout
    ret = {}
    for line in data.splitlines():
        pos1 = line.find('|')
        if pos1 <= 0:
            continue
        nr = line[:pos1]
        for kw in line[pos1 + 1:].split(' '):
            if kw == '':
                continue
            if kw not in ret:
                ret[kw] = []
            ret[kw].append(nr)
    return ret


for arg in sys.argv[1:]:
    if arg.endswith('/trac.db'):
        TRACDB = arg

data = readdb()
for kw in sorted(data.keys()):
    out = kw + ':'
    for ticket in data[kw]:
        out = out + ' ' + ticket
    print(out)