Is there a reason not to use agenda.py for this? - Aidan
On Thu, Oct 8, 2009 at 8:44 AM, <ritch...@apache.org> wrote: > Author: ritchiem > Date: Thu Oct 8 12:44:31 2009 > New Revision: 823151 > > URL: http://svn.apache.org/viewvc?rev=823151&view=rev > Log: > Added changeLogToWiki.py that just gives you the change log in wiki format. > It defaults to trunk/java but can take any SVN url via the -s option > > Added: > qpid/trunk/qpid/review/changeLogToWiki.py (with props) > > Added: qpid/trunk/qpid/review/changeLogToWiki.py > URL: > http://svn.apache.org/viewvc/qpid/trunk/qpid/review/changeLogToWiki.py?rev=823151&view=auto > ============================================================================== > --- qpid/trunk/qpid/review/changeLogToWiki.py (added) > +++ qpid/trunk/qpid/review/changeLogToWiki.py Thu Oct 8 12:44:31 2009 > @@ -0,0 +1,85 @@ > +#!/usr/bin/env python > +# > +# > +# Licensed to the Apache Software Foundation (ASF) under one > +# or more contributor license agreements. See the NOTICE file > +# distributed with this work for additional information > +# regarding copyright ownership. The ASF licenses this file > +# to you under the Apache License, Version 2.0 (the > +# "License"); you may not use this file except in compliance > +# with the License. You may obtain a copy of the License at > +# > +# http://www.apache.org/licenses/LICENSE-2.0 > +# > +# Unless required by applicable law or agreed to in writing, > +# software distributed under the License is distributed on an > +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > +# KIND, either express or implied. See the License for the > +# specific language governing permissions and limitations > +# under the License. > + > +import sys, re > +from popen2 import popen2, popen3 > +from optparse import OptionParser > +from xml.dom.minidom import parse, parseString > + > +prereqs = ["tr", "svn", "xsltproc", "sed", "grep", "wget"] > + > +apacheSVN="https://svn.apache.org/repos/asf/qpid/trunk/qpid/java" > + > +svncmd = "svn log %s --xml -r %s:HEAD | tr '\\n\\r|' ' -' | xsltproc > svnlog2wiki.xsl - | grep r | sed -e 's/^ *//' | sed -e > 's/\\(QPID-[0-9]*\\)/\\[\\1 | > https:\\/\\/issues.apache.org\\/jira\\/browse\\/\\1 \]/g'" > + > + > +def get_commits(revision): > + (stdout, stdin) = popen2(svncmd % (options.repo,revision)) > + return add_jira_status(stdout.read()) > + > +def add_jira_status(commits): > + commit_lines = commits.split("\n") > + new_commits = [] > + for commit in commit_lines: > + if re.match(".*https://issues.apache.org/.*", commit): > + jira = re.findall("QPID-[0-9]*", commit)[0] > + jira_xml_url = > "http://issues.apache.org/jira/si/jira.issueviews:issue-xml/%s/%s.xml" % > (jira, jira) > + (stdout, stdin) = popen2("wget -q -O - %s" % jira_xml_url) > + > + jira_dom = parse(stdout) > + status = jira_dom.getElementsByTagName("status")[0] > + new_commits.append("%s %s | " % (commit, status.lastChild.data)) > + else: > + new_commits.append(commit) > + > + return "\n".join(new_commits) > + > + > +def main(): > + global options > + parser = OptionParser() > + parser.add_option("-r", "--revision", dest="revision", action="store", > + type="string", > + help="The first revision to generate logs for") > + > + parser.add_option("-s", "--svn-repo", dest="repo", action="store", > + default=apacheSVN, > + type="string", > + help="Provide a svn repository to process") > + > + > + (options, args) = parser.parse_args() > + > + # Check that we have what's necessary > + > + notfound = re.compile('^which') > + for cmd in prereqs: > + (stdout, stdin, stderr) = popen3('which %s' % cmd) > + if (notfound.match(stderr.read())): > + parser.error ("Could not find command %s, try [apt-get|yum] > install %s" % > + (cmd, cmd)) > + > + if (options.revision == None): > + parser.error("svn revision must be specified") > + > + print(get_commits(options.revision)) > + > +if __name__ == "__main__": > + main() > > Propchange: qpid/trunk/qpid/review/changeLogToWiki.py > ------------------------------------------------------------------------------ > svn:executable = * > > > > --------------------------------------------------------------------- > Apache Qpid - AMQP Messaging Implementation > Project: http://qpid.apache.org > Use/Interact: mailto:commits-subscr...@qpid.apache.org > > -- Apache Qpid - AMQP, JMS, other messaging love http://qpid.apache.org "A witty saying proves nothing" - Voltaire --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org