From 698c83746080b99740c18a9485682d48abb78127 Mon Sep 17 00:00:00 2001 From: Adam Palay Date: Thu, 16 Apr 2015 12:49:29 -0400 Subject: [PATCH] add script for generating commands needed for hotfix --- scripts/hotfix.py | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 scripts/hotfix.py diff --git a/scripts/hotfix.py b/scripts/hotfix.py new file mode 100644 index 0000000000..fd0abda955 --- /dev/null +++ b/scripts/hotfix.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +""" +Script to generate alton and git commands for executing hotfixes +Commands for: + - cutting amis + - creating hotfix tag + +The script should be run with the hotfix's git hash as a command-line argument. +i.e. `python scripts/hotfix.py ` +""" +from __future__ import print_function +from datetime import date +import sys +import argparse +import textwrap + + +def generate_alton_commands(hotfix_hash): + """ + Generates commands for alton to cut amis from the git hash of the hotfix. + """ + template = textwrap.dedent(""" + @alton cut ami for stage-edx-edxapp from prod-edx-edxapp with edx_platform_version={hotfix_hash} + @alton cut ami for prod-edge-edxapp from prod-edge-edxapp with edx_platform_version={hotfix_hash} + @alton cut ami for prod-edx-edxapp from prod-edx-edxapp with edx_platform_version={hotfix_hash} + """) + return template.strip().format(hotfix_hash=hotfix_hash) + + +def generate_git_command(hotfix_hash): + """ + Generates command to tag the git hash of the hotfix. + """ + git_string = 'git tag -a hotfix-{iso_date} -m "Hotfix for {msg_date}" {hotfix_hash}'.format( + iso_date=date.today().isoformat(), + msg_date=date.today().strftime("%b %d, %Y"), + hotfix_hash=hotfix_hash, + ) + return git_string + + +def main(): + parser = argparse.ArgumentParser(description="Generate alton and git commands for hotfixes") + parser.add_argument("hash", help="git hash for hotfix") + args = parser.parse_args() + + hotfix_hash = args.hash + + print("\nHere are the alton commands to cut the hotfix amis:") + print(generate_alton_commands(hotfix_hash)) + + print("\nHere is the git command to generate the hotfix tag:") + print(generate_git_command(hotfix_hash)) + + print("\nOnce you create the git tag, push the tag by running:") + print("git push --tags\n") + + +if __name__ == '__main__': + main()