commit: 8ff2ab743613f6497fa2e4b9f703a3550c464d36 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> AuthorDate: Thu Jun 6 15:57:41 2013 +0000 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> CommitDate: Thu Feb 26 23:31:08 2015 +0000 URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=8ff2ab74
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. catalyst/__init__.py | 8 +++++++- catalyst/version.py | 44 +++++++++++++++++++++++++++++++++++++++++--- setup.py | 34 ++++++++++++++++++++++++++++++++-- 3 files changed, 80 insertions(+), 6 deletions(-) diff --git a/catalyst/__init__.py b/catalyst/__init__.py index 43a75d6..7bc2897 100644 --- a/catalyst/__init__.py +++ b/catalyst/__init__.py @@ -1,4 +1,10 @@ "Catalyst is the release building tool used by Gentoo Linux" -__version__ = '2.0.16' __maintainer__ = 'Catalyst <[email protected]>' + +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 ea12761..8060bff 100644 --- a/catalyst/version.py +++ b/catalyst/version.py @@ -8,14 +8,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)) diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index a412d48..5913bae --- a/setup.py +++ b/setup.py @@ -1,11 +1,14 @@ -"Catalyst is the release building tool used by Gentoo Linux" +"""Catalyst is a release building tool used by Gentoo Linux""" + import codecs as _codecs -from distutils.core import setup as _setup +from distutils.core import setup as _setup, Command as _Command from email.utils import parseaddr as _parseaddr import os as _os from catalyst import __version__, __maintainer__ +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__) @@ -49,6 +52,30 @@ _data_files.extend(_files('livecd', 'lib/catalyst/')) _data_files.extend(_files('targets', 'lib/catalyst/')) +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__, @@ -82,4 +109,7 @@ _setup( ], data_files=_data_files, provides=[_package_name], + cmdclass={ + 'set_version': set_version + }, )
