From 4a7f33b6256f1d4b7d85ca9355e2a6841dec08cd Mon Sep 17 00:00:00 2001 From: Roland Date: Mon, 24 Jan 2022 16:41:03 -0700 Subject: [PATCH] Printing git branch when printing version. --- main.py | 6 +++--- wrolpi/version.py | 24 ++++++++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 67a272a9..1c258266 100755 --- a/main.py +++ b/main.py @@ -13,7 +13,7 @@ from wrolpi.common import logger, get_config, wrol_mode_enabled, import_modules, from wrolpi.dates import set_timezone from wrolpi.downloader import download_manager from wrolpi.vars import PROJECT_DIR, DOCKERIZED -from wrolpi.version import __version__, git_commit +from wrolpi.version import get_version_string logger = logger.getChild('wrolpi-main') @@ -62,12 +62,12 @@ async def main(loop): if args.version: # Print out the relevant version information, then exit. - print(f'{__version__} (git revision: {git_commit()})') + print(get_version_string()) return 0 logger.warning(f'Starting with: {sys.argv}') await set_log_level(args) - logger.debug(f'git revision: {git_commit()}') + logger.debug(get_version_string()) if DOCKERIZED: logger.info('Running in Docker') diff --git a/wrolpi/version.py b/wrolpi/version.py index d5375990..e958f027 100644 --- a/wrolpi/version.py +++ b/wrolpi/version.py @@ -3,13 +3,29 @@ __version__ = '0.1.2-beta' import subprocess -def git_commit(): +def git_revision(): try: cmd = ('git', 'log', '-1', '--format="%H"') - git_version = subprocess.check_output(cmd, stderr=subprocess.PIPE) - git_version = git_version.decode().strip().strip('"') + revision = subprocess.check_output(cmd, stderr=subprocess.PIPE) + revision = revision.decode().strip().strip('"') + return revision except Exception: # Could not find git version... return 'unknown' - return git_version + +def git_branch(): + try: + cmd = ('git', 'rev-parse', '--abbrev-ref', 'HEAD') + branch = subprocess.check_output(cmd, stderr=subprocess.PIPE) + branch = branch.decode().strip() + return branch + except Exception: + return 'unknown' + + +def get_version_string(): + """ + Return a string containing the WROLPi version, git branch and git revision hash. + """ + return f'{__version__} (git: {git_branch()} {git_revision()})'