~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tools/fixed-in.py

  • Committer: Vincent Ladeuil
  • Date: 2010-09-28 08:57:31 UTC
  • mto: (5490.1.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 5492.
  • Revision ID: v.ladeuil+lp@free.fr-20100928085731-8h0duqj5wf4acsgy
Add -m to search for a regexp in news entries instead of the bug number.

Show diffs side-by-side

added added

removed removed

Lines of Context:
124
124
 
125
125
def main():
126
126
    opt_parser = optparse.OptionParser(
127
 
        usage="""Usage: %prog [options] <bug_number>
 
127
        usage="""Usage: %prog [options] BUG_NUMBER
128
128
    """)
129
 
    opt_parser.add_option('-f', '--file', type='str', dest='news_file',
130
 
                          help='NEWS file (defaults to ./NEWS)')
 
129
    opt_parser.add_option(
 
130
        '-f', '--file', type='str', dest='news_file',
 
131
        help='NEWS file (defaults to ./NEWS)')
 
132
    opt_parser.add_option(
 
133
        '-m', '--message', type='str', dest='msg_re',
 
134
        help='A regexp to search for in the news entry '
 
135
        '(BUG_NUMBER should not be specified in this case)')
131
136
    opt_parser.set_defaults(news_file='./NEWS')
132
 
 
133
137
    (opts, args) = opt_parser.parse_args(sys.argv[1:])
134
 
    if len(args) != 1:
 
138
    if opts.msg_re is not None:
 
139
        if len(args) != 0:
 
140
            opt_parser.error('BUG_NUMBER and -m are mutually exclusive')
 
141
        bug = None
 
142
        msg_re = re.compile(opts.msg_re)
 
143
    elif len(args) != 1:
135
144
        opt_parser.error('Expected a single bug number, got %r' % args)
136
 
 
137
 
    bug = args[0]
 
145
    else:
 
146
        bug = args[0]
138
147
 
139
148
    news = open(opts.news_file)
140
149
    parser = NewsParser(news)
144
153
            (number, authors, release, date, entry,) = b
145
154
            # indent entry
146
155
            entry = '\n'.join(['    ' + l for l in entry.splitlines()])
147
 
            if number[1:] == bug: # Strip the leading '#'
 
156
            found = False
 
157
            if bug is not None:
 
158
                if number[1:] == bug: # Strip the leading '#'
 
159
                    found = True
 
160
            elif msg_re.search(entry) is not None:
 
161
                found = True
 
162
            if found:
148
163
                print 'Bug %s was fixed in bzr-%s/%s by %s:' % (
149
164
                    number, release, date, authors)
150
165
                print entry