summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Waldon <bcwaldon@gmail.com>2012-11-27 11:46:26 -0500
committerBrian Waldon <bcwaldon@gmail.com>2012-11-28 10:52:43 -0800
commit2eb5e2c2abe83d285967dda1b2d86c612a9ccef5 (patch)
treeb74a5c756726758b11420bc1a619750a88acc4b0
parent66339b004ac0c0882afaf88b551db1e6896c1a09 (diff)
downloadpython-keystoneclient-2eb5e2c2abe83d285967dda1b2d86c612a9ccef5.tar.gz
Add --version CLI opt and __version__ module attr
Change-Id: I8c39a797e79429dd21c5caf093b076a4b1757de0
-rw-r--r--keystoneclient/__init__.py35
-rw-r--r--keystoneclient/shell.py5
-rw-r--r--setup.py3
3 files changed, 42 insertions, 1 deletions
diff --git a/keystoneclient/__init__.py b/keystoneclient/__init__.py
index e69de29..0b4062d 100644
--- a/keystoneclient/__init__.py
+++ b/keystoneclient/__init__.py
@@ -0,0 +1,35 @@
+# Copyright 2012 OpenStack LLC.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+import inspect
+import os
+
+
+def _get_client_version():
+ """Read version from versioninfo file."""
+ mod_abspath = inspect.getabsfile(inspect.currentframe())
+ client_path = os.path.dirname(mod_abspath)
+ version_path = os.path.join(client_path, 'versioninfo')
+
+ if os.path.exists(version_path):
+ version = open(version_path).read().strip()
+ else:
+ version = "Unknown, couldn't find versioninfo file at %s"\
+ % version_path
+
+ return version
+
+
+__version__ = _get_client_version()
diff --git a/keystoneclient/shell.py b/keystoneclient/shell.py
index 3deda8d..578c983 100644
--- a/keystoneclient/shell.py
+++ b/keystoneclient/shell.py
@@ -24,6 +24,7 @@ import httplib2
import os
import sys
+import keystoneclient
from keystoneclient import exceptions as exc
from keystoneclient import utils
from keystoneclient.v2_0 import shell as shell_v2_0
@@ -63,6 +64,10 @@ class OpenStackIdentityShell(object):
action='store_true',
help=argparse.SUPPRESS)
+ parser.add_argument('--version',
+ action='version',
+ version=keystoneclient.__version__)
+
parser.add_argument('--debug',
default=False,
action='store_true',
diff --git a/setup.py b/setup.py
index e46f99a..82ca730 100644
--- a/setup.py
+++ b/setup.py
@@ -41,5 +41,6 @@ setuptools.setup(
entry_points={
'console_scripts': ['keystone = keystoneclient.shell:main']
- }
+ },
+ data_files=[('keystoneclient', ['keystoneclient/versioninfo'])],
)