diff options
author | Brian Dolbec <dolsen@gentoo.org> | 2013-06-06 08:57:41 -0700 |
---|---|---|
committer | Brian Dolbec <dolsen@gentoo.org> | 2013-11-21 22:02:35 -0800 |
commit | 1ff4b0d5ad73bcd43c7939b1001aea5597330e8f (patch) | |
tree | 3d438174a56db881d43cd5b530446a85e7d9da42 | |
parent | setup.py: Add disutils-based packaging (diff) | |
download | catalyst-1ff4b0d5ad73bcd43c7939b1001aea5597330e8f.tar.gz catalyst-1ff4b0d5ad73bcd43c7939b1001aea5597330e8f.tar.bz2 catalyst-1ff4b0d5ad73bcd43c7939b1001aea5597330e8f.zip |
Add set_version command to setup.py.
* Add/modify functions to save and retrieve the set version
information or the live git version.
* Change indent to tabs.
-rw-r--r-- | catalyst/__init__.py | 7 | ||||
-rw-r--r-- | catalyst/version.py | 44 | ||||
-rwxr-xr-x[-rw-r--r--] | setup.py | 38 |
3 files changed, 83 insertions, 6 deletions
diff --git a/catalyst/__init__.py b/catalyst/__init__.py index c2538aac..c9c2eab3 100644 --- a/catalyst/__init__.py +++ b/catalyst/__init__.py @@ -1,3 +1,8 @@ "Catalyst is a release building tool used by Gentoo Linux" -from .version import __version__ +try: + from .verinfo import version as fullversion + __version__ = fullversion.split('\n')[0].split()[1] +except ImportError: + from .version import get_version, __version__ + fullversion = get_version(reset=True) diff --git a/catalyst/version.py b/catalyst/version.py index 03c77e40..d379d350 100644 --- a/catalyst/version.py +++ b/catalyst/version.py @@ -10,14 +10,52 @@ '''Version information and/or git version information ''' +import os + from snakeoil.version import format_version __version__="rewrite-git" _ver = None -def get_version(): + +def get_git_version(version=__version__): """Return: a string describing our version.""" global _ver - if _ver is None: - _ver = format_version('catalyst',__file__, __version__) + _ver = format_version('catalyst',__file__, version) return _ver + + +def get_version(reset=False): + '''Returns a saved release version string or the + generated git release version. + ''' + global __version__, _ver + if _ver and not reset: + return _ver + try: # getting the fixed version + from .verinfo import version + _ver = version + __version__ = version.split('\n')[0].split()[1] + except ImportError: # get the live version + version = get_git_version() + return version + + + +def set_release_version(version, root=None): + '''Saves the release version along with the + git log release information + + @param version: string + @param root: string, optional alternate root path to save to + ''' + #global __version__ + filename = "verinfo.py" + if not root: + path = os.path.join(os.path.dirname(__file__), filename) + else: + path = os.path.join(root, filename) + #__version__ = version + ver = get_git_version(version) + with open(path, 'w') as f: + f.write("version = {0!r}".format(ver)) @@ -1,3 +1,5 @@ +#!/usr/bin/python2 -OO + # Copyright (C) 2013 W. Trevor King <wking@tremily.us> # # This program is free software: you can redistribute it and/or modify @@ -13,14 +15,19 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -"Catalyst is a release building tool used by Gentoo Linux" +"""Catalyst is a release building tool used by Gentoo Linux""" + +# py2.6 compatibility +from __future__ import print_function import codecs as _codecs -from distutils.core import setup as _setup +from distutils.core import setup as _setup, Command as _Command import itertools as _itertools import os as _os from catalyst import __version__ +from catalyst.version import set_release_version as _set_release_version +from catalyst.version import get_version as _get_version _this_dir = _os.path.dirname(__file__) @@ -44,6 +51,30 @@ def files(root): yield path +class set_version(_Command): + '''Saves the specified release version information + ''' + global __version__ + description = "hardcode script's version using VERSION from environment" + user_options = [] # [(long_name, short_name, desc),] + + def initialize_options (self): + pass + + def finalize_options (self): + pass + + def run(self): + try: + version = _os.environ['VERSION'] + except KeyError: + print("Try setting 'VERSION=x.y.z' on the command line... Aborting") + return + _set_release_version(version) + __version__ = _get_version() + print("Version set to:\n", __version__) + + _setup( name=package_name, version=__version__, @@ -86,4 +117,7 @@ _setup( ))), ], provides=[package_name], + cmdclass={ + 'set_version': set_version + }, ) |