shaka-packager/packager/version/generate_version_string.py

58 lines
1.8 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/python
#
# Copyright 2015 Google Inc. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file or at
# https://developers.google.com/open-source/licenses/bsd
"""This script is used to generate version string for packager."""
import platform
import subprocess
# To support python version before 2.7, which does not have
# subprocess.check_output.
if 'check_output' not in dir(subprocess):
def check_output_implementation(*popenargs, **kwargs):
"""Implement check_output if it is not available."""
if 'stdout' in kwargs:
raise ValueError('stdout argument not allowed, it will be overridden.')
process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
output, unused_err = process.communicate()
retcode = process.poll()
if retcode:
cmd = kwargs.get('args')
if cmd is None:
cmd = popenargs[0]
raise subprocess.CalledProcessError(retcode, cmd)
return output
subprocess.check_output = check_output_implementation
if __name__ == '__main__':
git = 'git'
if platform.system() == 'Windows':
git += '.bat'
try:
version_tag = subprocess.check_output(
[git, 'tag', '--points-at', 'HEAD'],
stderr=subprocess.STDOUT).rstrip()
except subprocess.CalledProcessError as e:
# git tag --points-at is not supported in old versions of git. Just ignore
# version_tag in this case.
version_tag = None
try:
version_hash = subprocess.check_output(
[git, 'rev-parse', '--short', 'HEAD'],
stderr=subprocess.STDOUT).rstrip()
except subprocess.CalledProcessError as e:
version_hash = 'unknown-version'
if version_tag:
print '{0}-{1}'.format(version_tag, version_hash)
else:
print version_hash