2015-12-21 23:10:17 +00:00
|
|
|
#!/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 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__':
|
2016-02-10 00:21:55 +00:00
|
|
|
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'
|
|
|
|
|
2015-12-21 23:10:17 +00:00
|
|
|
if version_tag:
|
|
|
|
print '{0}-{1}'.format(version_tag, version_hash)
|
|
|
|
else:
|
|
|
|
print version_hash
|