/[gentoo]/src/packages/changelogs.py
Gentoo

Contents of /src/packages/changelogs.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download) (as text)
Wed Oct 5 01:41:55 2005 UTC (8 years, 9 months ago) by marduk
Branch: MAIN
Changes since 1.3: +40 -19 lines
File MIME type: text/x-python
Quite crapily backported changelogs rendering enhancements from pre_2-0

1 #
2 # Copyright (C) 2003-2005, marduk <marduk@python.net>
3 #
4 # This copyrighted material is made available to anyone wishing to use,
5 # modify, copy, or redistribute it subject to the terms and conditions
6 # of the GNU General Public License v.2.
7 #
8 # You should have received a copy of the GNU General Public License
9 # along with this program; if not, write to the Free Software Foundation,
10 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
11 #
12 """Module to deal with Changelog files in the portage tree"""
13
14 import mstring
15 import re
16 from cgi import escape
17
18 #BUG_REGEX = re.compile(r'#[0-9]+|bug [0-9]+',re.I)
19 BUG_REGEX = re.compile(r'((\B#|\bbug )([0-9]+))', re.I)
20 DATE_REGEX = re.compile(
21 r'[0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4}[;:]',
22 re.M)
23 GENTOO_DEV = re.compile(r'&lt;((.+))@gentoo.org&gt;', re.I)
24 BUG_URL = 'http://bugs.gentoo.org/show_bug.cgi?id='
25 CIA_URL = 'http://cia.navi.cx/stats/author/'
26
27 def bugs_to_html(string):
28 """Convert bug #'s to html, escape other html text"""
29 string = string.strip()
30 string = escape(string)
31 index = 0
32 string = BUG_REGEX.sub('<a href="%s\\3">\\1</a>' % BUG_URL, string)
33 match = DATE_REGEX.search(string, index)
34 if match:
35 start = match.start()
36 next = DATE_REGEX.search(string, match.end() + 1)
37 if next:
38 end = next.start() - 1
39 else:
40 end = len(string)
41 substring = string[start:end]
42 html = '<span class="change"><span class="date">%s</span>%s</span>' % \
43 (substring[:11], substring[11:])
44 (string, index) = mstring.replace_sub(string[:end+1], html, start, end)
45 string = GENTOO_DEV.sub('(<a href="%s\\2">\\1</a>)' % CIA_URL, string)
46 return '<span style="whitespace: pre">%s\n\n</span>' % string
47
48 def changelog(filename):
49 try:
50 #print filename
51 fp = open(filename,'r')
52 except IOError:
53 return ""
54
55
56 s = ""
57 # find first line that isn't blank or a comment
58 while True:
59 line = fp.readline()
60 if not line: break
61 #print line
62 if line[0] not in ['#','','\n']:
63 s = s + line
64 break
65
66 # append next strings until you reach next "*"
67 while True:
68 line = fp.readline()
69 #print repr(line)
70 if not line or line[0] == '*': break
71 else: s= s + line
72
73 return s

  ViewVC Help
Powered by ViewVC 1.1.20