diff --git a/balkian_pre_commit/VERSION b/balkian_pre_commit/VERSION index 8acdd82..4e379d2 100644 --- a/balkian_pre_commit/VERSION +++ b/balkian_pre_commit/VERSION @@ -1 +1 @@ -0.0.1 +0.0.2 diff --git a/balkian_pre_commit/branchversion.py b/balkian_pre_commit/branchversion.py index 8b0cdbe..8710fd8 100644 --- a/balkian_pre_commit/branchversion.py +++ b/balkian_pre_commit/branchversion.py @@ -1,31 +1,43 @@ import argparse import semver -import os from subprocess import check_output + def main(argv=None): parser = argparse.ArgumentParser() parser.add_argument('filenames', nargs='*') args = parser.parse_args(argv) - branch_name = check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).strip().decode() - error = 1 - for fn in args.filenames: - with open(fn) as f: - currentcontent = f.read().strip() - prevcontent = check_output(['git', 'show', 'HEAD:{}'.format(fn)]).strip().decode() - current = semver.parse_version_info(currentcontent) - print('Checking versions: {} -> {}'.format(prevcontent, currentcontent)) - if branch_name == 'master' and current.prerelease: - print('Trying to push a pre-release version to a master branch') - return 1 - elif semver.compare(currentcontent, prevcontent)<1: - print('The new version should be newer than the old one') - return 1 - else: - error = 0 - if error: - print('VERSION files should be bumped in every commit') - return error + gitout = check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']) + branch_name = gitout.strip().decode() + + if len(args.filenames) > 1: + print('There are more than one VERSION files: ' + '{}'.format(args.filenames)) + return 1 + elif not args.filenames: + if branch_name == 'master': + print('VERSION files should be bumped in every commit to master') + return 2 + else: + return 0 + + fn = args.filenames[0] + with open(fn) as f: + currentcontent = f.read().strip() + gitout = check_output(['git', 'show', 'HEAD:{}'.format(fn)]) + prevcontent = gitout.strip().decode() + current = semver.parse_version_info(currentcontent) + print('Checking versions: {} -> {}'.format(prevcontent, + currentcontent)) + if branch_name == 'master' and current.prerelease: + print('Trying to push a pre-release version to a master branch') + return 1 + elif semver.compare(currentcontent, prevcontent) < 1: + print('The new version should be newer than the old one') + return 1 + else: + return 0 + if __name__ == '__main__': exit(main())