diff --git a/.gitignore b/.gitignore index 71b70251..786c706d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,14 +7,15 @@ docs/man/man1/*.1 docs/man/man7/*.7 docs/man/man*/*.html docs/man/man*/*.xml +docs/man/man*/docbook-xsl.css docs/man/man7/cdist-type__*.text docs/man/man7/cdist-reference.text -docs/man/man*/docbook-xsl.css # Ignore cdist cache for version control /cache/ -# Python: cache, distutils +# Python: cache, distutils, distribution in general __pycache__/ MANIFEST dist/ +lib/cdist/version_static.py diff --git a/.version b/.version new file mode 100644 index 00000000..3d45b5c6 --- /dev/null +++ b/.version @@ -0,0 +1 @@ +2.0.14 diff --git a/build b/build index 4b5690ef..1dedabba 100755 --- a/build +++ b/build @@ -74,7 +74,7 @@ case "$1" in ;; mantype) - for mansrc in conf/type/*/man.text; do + for mansrc in conf/type/*/man.text; do dst="$(echo $mansrc | sed -e 's;conf/;cdist-;' -e 's;/;;' -e 's;/man;;' -e 's;^;docs/man/man7/;')" ln -sf "../../../$mansrc" "$dst" done @@ -174,12 +174,24 @@ case "$1" in echo '' echo 'Here are the possible targets:' echo '' - echo ' clean: Remove build stuff' - echo ' man: Build manpages (requires Asciidoc)' - echo ' test: Run tests' + echo ' clean: Remove build stuff' + echo ' man: Build manpages (requires Asciidoc)' + echo ' test: Run tests' echo '' echo '' echo "Unknown target, \"$1\"" >&2 exit 1 ;; + + version-dynamic) + cd lib/cdist/ + ln -sf version_dynamic.py version.py + ;; + + version-dist) + version=$(cat .version) + cd lib/cdist/ + echo "VERSION=\"$version\"" > version_static.py + ln -sf version_static.py version.py + ;; esac diff --git a/cdist/__init__.py b/cdist/__init__.py index 85bc5f77..02d708b1 100644 --- a/cdist/__init__.py +++ b/cdist/__init__.py @@ -22,14 +22,9 @@ import os import subprocess -try: - with open(os.devnull, 'w') as devnull: - here = os.path.dirname(os.path.realpath(__file__)) - VERSION = subprocess.check_output( - 'cd "%s" && git describe' % here, - stderr=devnull, shell=True).decode('utf-8') -except: - VERSION = "2.0.14" +import cdist.version + +VERSION = cdist.version.VERSION BANNER = """ .. . .x+=:. s diff --git a/doc/dev/logs/2012-10-25.version-split b/doc/dev/logs/2012-10-25.version-split new file mode 100644 index 00000000..f381c48f --- /dev/null +++ b/doc/dev/logs/2012-10-25.version-split @@ -0,0 +1,4 @@ +x store version in .version +x when distributed / packaged, include .version into sourcecode + split into two files +x when in git checkout, use dynamic versioning diff --git a/lib/cdist/version.py b/lib/cdist/version.py new file mode 120000 index 00000000..153cf043 --- /dev/null +++ b/lib/cdist/version.py @@ -0,0 +1 @@ +version_dynamic.py \ No newline at end of file diff --git a/lib/cdist/version_dynamic.py b/lib/cdist/version_dynamic.py new file mode 100644 index 00000000..5f69f374 --- /dev/null +++ b/lib/cdist/version_dynamic.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# +# 2010-2012 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import subprocess + +here = os.path.dirname(os.path.realpath(__file__)) +VERSION = subprocess.check_output('cd "%s" && git describe' % here, + shell=True).decode('utf-8')