Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- import sys
- import argparse
- import re
- import subprocess
- NORMAL_BRANCH_NAME_LINE_PREFIX = "# On branch "
- MESSAGE_BRANCH_NAME_LINE_PREFIX = "["
- TICKET_NUMBER_REGEX = r'(\d+)-'
- if __name__ == '__main__':
- parser = argparse.ArgumentParser()
- parser.add_argument('commit_msg_file')
- parser.add_argument('commit_source', nargs='?')
- parser.add_argument('sha1', nargs='?')
- args = parser.parse_args()
- if args.commit_source in ('merge', 'squash', 'commit'):
- sys.exit()
- content = None
- ticket_number = None
- branch_name_line_prefix = MESSAGE_BRANCH_NAME_LINE_PREFIX \
- if args.commit_source == 'message' \
- else NORMAL_BRANCH_NAME_LINE_PREFIX
- with open(args.commit_msg_file) as f:
- branch_name = subprocess.check_output(
- ['git', 'rev-parse', '--abbrev-ref', 'HEAD']).decode('utf8')
- match = re.match(TICKET_NUMBER_REGEX, branch_name)
- if match:
- f.seek(0)
- content = f.read()
- ticket_number = match.group(1)
- if content is not None and ticket_number is not None:
- if args.commit_source == 'message':
- ticket_number_suffix = " "
- else:
- ticket_number_suffix = " \n"
- content = "{}{}{}".format(ticket_number, ticket_number_suffix, content)
- with open(args.commit_msg_file, 'w') as f:
- f.write(content)
Add Comment
Please, Sign In to add comment