diff options
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.78.1/scripts/gen_changelog.py')
| -rwxr-xr-x | debian/uncrustify-trinity/uncrustify-trinity-0.78.1/scripts/gen_changelog.py | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/scripts/gen_changelog.py b/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/scripts/gen_changelog.py deleted file mode 100755 index 52428c58..00000000 --- a/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/scripts/gen_changelog.py +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/env python - -''' -This script attempts to extract what options have been added since the -specified revision (usually a tag, but any revision that git recognizes may be -provided). It accepts an optional second revision to use as the cut-off. The -default is your LOCAL "master". Thus, you should ensure that this is up to date -before running this script. - -This script works by extracting the set of options before and after every -commit that affected ':src/options.h' and computing the differences. It should, -therefore, be fairly robust (for example, options that moved around won't show -up). However, if an option is removed and subsequently re-added, or if an -option was added and subsequently removed, the resulting records will need to -be reconciled manually. -''' - -import argparse -import git -import os -import re -import sys -import time - -re_option = re.compile(r'extern (Bounded)?Option<[^>]+>') - - -# ----------------------------------------------------------------------------- -def extract_options(repo, blob_id): - from git.util import hex_to_bin - - blob = git.Blob(repo, hex_to_bin(blob_id)) - content = blob.data_stream.stream - options = set() - - for line in iter(content.readline, b''): - line = line.decode('utf-8').strip() - - if re_option.match(line): - line = content.readline().decode('utf-8').strip() - options.add(line.split(';')[0]) - - return options - - -# ============================================================================= -class Changeset(object): - # ------------------------------------------------------------------------- - def __init__(self, repo, sha): - self.sha = sha - self.added_options = set() - self.removed_options = set() - - commit = repo.commit(sha) - ad = time.gmtime(commit.authored_date) - self.date = time.strftime('%b %d %Y', ad).replace(' 0', ' ') - - info = repo.git.log('-1', '--raw', '--abbrev=40', '--pretty=', - sha, '--', ':src/options.h').split(' ') - if len(info) < 5: - return - - old_options = extract_options(repo, info[2]) - new_options = extract_options(repo, info[3]) - self.added_options = new_options.difference(old_options) - self.removed_options = old_options.difference(new_options) - - -# ----------------------------------------------------------------------------- -def main(): - parser = argparse.ArgumentParser( - description='Generate changelog for new options') - - root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) - parser.add_argument('--repo', type=str, default=root, - help='Path to uncrustify git repository') - parser.add_argument('since', type=str, - help='Revision (tag) of previous uncrustify version') - parser.add_argument('until', type=str, default='master', nargs='?', - help='Revision (tag) of next uncrustify version') - - args = parser.parse_args() - repo = git.Repo(args.repo) - revs = repo.git.log('--pretty=%H', '--reverse', - '{}..{}'.format(args.since, args.until), - '--', ':src/options.h').split('\n') - - if revs == ['']: - print('No changes were found') - return 1 - - changes = [] - for r in revs: - c = Changeset(repo, r) - if len(c.added_options) or len(c.removed_options): - changes.append(c) - - for c in changes: - print(' ', c.sha) - for o in c.added_options: - print(' Added : {:36} {}'.format(o, c.date)) - for o in c.removed_options: - print(' Removed : {:36} {}'.format(o, c.date)) - - return 0 - - -# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -if __name__ == '__main__': - sys.exit(main()) |
