1#!/usr/bin/env python
2#
3#
4# Licensed to the Apache Software Foundation (ASF) under one
5# or more contributor license agreements.  See the NOTICE file
6# distributed with this work for additional information
7# regarding copyright ownership.  The ASF licenses this file
8# to you under the Apache License, Version 2.0 (the
9# "License"); you may not use this file except in compliance
10# with the License.  You may obtain a copy of the License at
11#
12#   http://www.apache.org/licenses/LICENSE-2.0
13#
14# Unless required by applicable law or agreed to in writing,
15# software distributed under the License is distributed on an
16# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17# KIND, either express or implied.  See the License for the
18# specific language governing permissions and limitations
19# under the License.
20#
21#
22#
23# Read a diff from stdin, and output a log message template to stdout.
24# Hint: It helps if the diff was generated using 'svn diff -x -p'
25#
26# Note: Don't completely trust the generated log message.  This script
27# depends on the correct output of 'diff -x -p', which can sometimes get
28# confused.
29
30import sys, re
31
32rm = re.compile('@@.*@@ (.*)\(.*$')
33
34def main():
35  for line in sys.stdin:
36    if line[0:6] == 'Index:':
37      print('\n* %s' % line[7:-1])
38      prev_funcname = ''
39      continue
40    match = rm.search(line[:-1])
41    if match:
42      if prev_funcname == match.group(1):
43        continue
44      print('  (%s):' % match.group(1))
45      prev_funcname = match.group(1)
46
47
48if __name__ == '__main__':
49  main()
50