generate_changelog.py
00001
00002
00003 import subprocess
00004 import sys
00005
00006 try:
00007 pipe = subprocess.Popen("bzr log", shell=True, stdout=subprocess.PIPE)
00008 logfile = pipe.communicate()[0]
00009 except ValueError:
00010 print("Error with my Pipe")
00011 sys.exit(-1)
00012
00013 revisions = logfile.split("------------------------------------------------------------")
00014 revisions.reverse()
00015 revisions = revisions[:-1]
00016
00017
00018 class REVISION:
00019 def __init__(self, rev):
00020 self.revision=None
00021 self.comitter=None
00022 self.branch=None
00023 self.timestamp=None
00024 self.message=None
00025
00026 lines = rev.split("\n")[1:]
00027 self.revision = lines[0].strip().replace("revno: ", "")
00028 self.comitter = lines[1]
00029 self.branch = lines[2]
00030 self.timestamp = lines[3]
00031 self.message="\n".join(lines[4:]).strip()
00032
00033 def __str__(self):
00034 ret = """revision: %s
00035 committer: %s
00036 branch: %s
00037 timestamp: %s
00038 message: %s
00039 """ % (self.revision, self.comitter, self.branch, self.timestamp, self.message)
00040 return ret
00041
00042 revlist = []
00043 for rev in revisions:
00044 r = REVISION(rev)
00045 revlist.append(r)
00046
00047 def get_revision(rev):
00048 return revisions[rev-1]
00049
00050 def get_revisions(fromrev, torev):
00051 return revisions[fromrev-1: torev]
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086