diff options
author | Calum Lind <calumlind+deluge@gmail.com> | 2016-11-26 19:35:53 +0000 |
---|---|---|
committer | Calum Lind <calumlind+deluge@gmail.com> | 2016-11-26 19:35:53 +0000 |
commit | 5e1603317a12de7a86eeb9aa17bcf5c74bc127d8 (patch) | |
tree | 02cc0f46f6f6321d1cf7a481cfd1d95125741847 /version.py | |
parent | 943a9ded00660668100d2f7c7cdba3fddb9694ea (diff) | |
download | deluge-5e1603317a12de7a86eeb9aa17bcf5c74bc127d8.tar.gz deluge-5e1603317a12de7a86eeb9aa17bcf5c74bc127d8.tar.bz2 deluge-5e1603317a12de7a86eeb9aa17bcf5c74bc127d8.zip |
Revert "Rename version.py to calc_version.py to fix buildd error"
This reverts commit 943a9ded00660668100d2f7c7cdba3fddb9694ea.
Diffstat (limited to 'version.py')
-rwxr-xr-x | version.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/version.py b/version.py new file mode 100755 index 000000000..e6e3f76fa --- /dev/null +++ b/version.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Authors: Douglas Creager <dcreager@dcreager.net> +# Calum Lind <calumlind@gmail.com> +# +# This file is placed into the public domain. +# +# Calculates the current version number by first checking output of “git describe”, +# modified to conform to PEP 386 versioning scheme. If “git describe” fails +# (likely due to using release tarball rather than git working copy), then fall +# back on reading the contents of the RELEASE-VERSION file. +# +# Usage: Import in setup.py, and use result of get_version() as package version: +# +# from version import * +# +# setup( +# ... +# version=get_version(), +# ... +# ) +# +# Script will automatically update the RELEASE-VERSION file, if needed. +# Note that RELEASE-VERSION file should *not* be checked into git; please add +# it to your top-level .gitignore file. +# +# You'll probably want to distribute the RELEASE-VERSION file in your +# sdist tarballs; to do this, just create a MANIFEST.in file that +# contains the following line: +# +# include RELEASE-VERSION +# + +from __future__ import print_function + +import os +from subprocess import PIPE, Popen + +__all__ = ('get_version') + +VERSION_FILE = os.path.join(os.path.dirname(__file__), 'RELEASE-VERSION') + + +def call_git_describe(prefix='', suffix=''): + cmd = 'git describe --tags --match %s[0-9]*' % prefix + try: + output = Popen(cmd.split(), stdout=PIPE, stderr=PIPE).communicate() + version = output[0].decode('utf-8').strip().replace(prefix, '') + if '-' in version: + version = '.dev'.join(version.replace(suffix, '').split('-')[:2]) + return version + except OSError: + return None + + +def get_version(prefix='', suffix=''): + try: + with open(VERSION_FILE, 'r') as f: + release_version = f.readline().strip() + except IOError: + release_version = None + + version = call_git_describe(prefix, suffix) + + if not version: + version = release_version + if not version: + raise ValueError('Cannot find the version number!') + + if version != release_version: + with open(VERSION_FILE, 'w') as f: + f.write('%s\n' % version) + + return version + + +if __name__ == '__main__': + print(get_version(prefix='deluge-', suffix='.dev0')) |