From 1997b5caa673ad245dad88e16c79b6ded7485075 Mon Sep 17 00:00:00 2001 From: Derek DeJonghe Date: Wed, 6 Jun 2018 09:56:45 -0400 Subject: [PATCH] get branch name with dot, dot output git errors --- semver/get_version.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/semver/get_version.py b/semver/get_version.py index 18b00a9..0e11895 100644 --- a/semver/get_version.py +++ b/semver/get_version.py @@ -1,32 +1,44 @@ +import argparse import subprocess try: from configparser import ConfigParser except ImportError: # Python < 3 from ConfigParser import ConfigParser +try: + from subprocess import DEVNULL # py3k +except ImportError: + import os + DEVNULL = open(os.devnull, 'wb') -def get_version(): +def get_version(dot=False): config = ConfigParser() config.read('./.bumpversion.cfg') version = config.get('bumpversion', 'current_version') # Get the commit hash of the version v_hash = subprocess.Popen(['git', 'rev-list', '-n', '1', version], stdout=subprocess.PIPE, - cwd='.').stdout.read().decode('utf-8').rstrip() + stderr=DEVNULL, cwd='.').stdout.read().decode('utf-8').rstrip() # Get the current commit hash c_hash = subprocess.Popen(['git', 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, - cwd='.').stdout.read().decode('utf-8').rstrip() + stderr=DEVNULL, cwd='.').stdout.read().decode('utf-8').rstrip() # If the version commit hash and current commit hash # do not match return the branch name else return the version if v_hash != c_hash: b = subprocess.Popen(['git', 'rev-parse', '--abbrev-ref', 'HEAD'], stdout=subprocess.PIPE, - cwd='.').stdout.read().decode('utf-8').rstrip() + stderr=DEVNULL, cwd='.').stdout.read().decode('utf-8').rstrip() + if dot: + b = b.replace('/','.') return b return version def main(): - print(get_version()) + parser = argparse.ArgumentParser(description='Get Version or Branch.') + parser.add_argument('-d','--dot', help='Switch out / for . to be used in docker tag', action='store_true', dest='dot') + args = parser.parse_args() + + print(get_version(args.dot)) if __name__ == '__main__': try: main()