X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=release;h=e9a29ff002fd14bd06440a25ac5f958c2f6b32bc;hb=2a2c782b754ba1fbd7899ac8fe078805c63ef011;hp=c1f84ce7a0f45c16533a6b25fdc780c35b212a28;hpb=40c36996cf628aa0a0b6c32f24e83a269932b0ac;p=dcpomatic.git diff --git a/release b/release index c1f84ce7a..e9a29ff00 100755 --- a/release +++ b/release @@ -5,40 +5,52 @@ import sys import datetime import shutil import version +import argparse + +parser = argparse.ArgumentParser(description = "Build and tag a release.") +parser.add_argument('-f', '--full', dest='full', action='store_const', const=True, help="full release", default=False) +parser.add_argument('-b', '--beta', dest='beta', action='store_const', const=True, help="beta release", default=False) +parser.add_argument('-d', '--debug', dest='debug', action='store_const', const=True, help="show commands but don't do anything", default=False) +args = parser.parse_args() + +if not args.full and not args.beta: + print "%s: must specify --full or --beta" % sys.argv[0] + sys.exit(1) def command(c): - os.system(c) + if not args.debug: + os.system(c) print c -command("git checkout master") - -release_version_string = version.rewrite_wscript(version.Version.to_release) -version.append_to_changelog(release_version_string) +def check_diff_with_user(): + print "Planning to commit... ok? [y/n]" + command("git diff") + if (raw_input() != "y"): + command("git reset --hard") + print 'Aborted' + sys.exit(1) -command("git diff") -if (raw_input() != "y"): - command("git reset --hard") - print 'Aborted' +if not args.debug and os.popen('git status -s').read() != '': + print '%s: uncommitted changes exist.' % sys.argv[0] sys.exit(1) -command("git commit -a -m \"Bump version\"") -command("git tag -m \"v%s\" v%s" % (release_version_string, release_version_string)) +m = version.Version.to_release +if args.beta: + m = version.Version.bump_beta + +new_version = version.rewrite_wscript(m) +version.append_to_changelog(new_version) +command("dch -b -v %s-1 \"New upstream release.\"" % new_version) + command("./waf clean") -command("./waf") -command("./waf configure") command("./waf dist") -command("./builds/windows-32") -shutil.copy(os.path.join('build', 'windows', 'DVD-o-matic %s 32-bit Installer.exe' % release_version_string), '.') -command("./builds/windows-64") -shutil.copy(os.path.join('build', 'windows', 'DVD-o-matic %s 64-bit Installer.exe' % release_version_string), '.') - -version.rewrite_wscript(version.Version.bump_and_to_pre) -command("git diff") -if (raw_input() != "y"): - command("git reset --hard") - print 'Aborted' - sys.exit(1) +check_diff_with_user() command("git commit -a -m \"Bump version\"") -command("cp DVD-o-matic*.exe dvdomatic-*.tar.bz2 /home/carl/public_html/carlh.net/software/dvdomatic") +command("git tag -m \"v%s\" v%s" % (new_version, new_version)) + +if args.full: + version.rewrite_wscript(version.Version.bump_and_to_pre) + check_diff_with_user() + command("git commit -a -m \"Bump version\"")