misc: extras update list_api_changes.py to PY3
[vpp.git] / extras / scripts / list_api_changes.py
1 #!/usr/bin/env python3
2 from __future__ import print_function
3 import fnmatch
4 import os
5 import subprocess
6
7 starttag = 'v19.08-rc0'
8 endtag = 'HEAD'
9 emit_md = True
10 apifiles = []
11
12 for root, dirnames, filenames in os.walk('.'):
13     for filename in fnmatch.filter(filenames, '*.api'):
14         apifiles.append(os.path.join(root, filename))
15
16 for f in apifiles:
17     commits = subprocess.check_output(['git', 'log',
18                                        '--oneline', starttag + '..' + endtag,
19                                        f])
20     if commits:
21         if f[0:2] == './':
22             f = f[2:]
23         if emit_md:
24             print("| @c %s ||" % f)
25             print("| ------- | ------- |")
26             for line in commits.splitlines():
27                 parts = line.strip().split()
28                 commit = parts[0]
29                 message = b" ".join(parts[1:]).decode().replace("|", r"\|")
30                 print("| [%s](https://gerrit.fd.io/r/gitweb?"
31                       "p=vpp.git;a=commit;h=%s) | %s |" % (
32                             commit, commit, message))
33             print()
34         else:
35             print(f)
36             print(commits)