Browse code

added ver option to return generated version

Ching-Hwa Yu authored on 08/04/2021 22:45:14
Showing 1 changed files
... ...
@@ -8,8 +8,9 @@ import argparse
8 8
 import tempfile
9 9
 import shutil
10 10
 import textwrap
11
+import glob
11 12
 from zipfile import ZipFile
12
-from importlib.util import find_spec
13
+from importlib.util import find_spec, spec_from_file_location, module_from_spec
13 14
 from urllib.request import urlretrieve
14 15
 
15 16
 if sys.version_info < (3, 5):
... ...
@@ -146,6 +147,14 @@ def get_parser():
146 147
         "package_directory", help="Directory to install 'miniver' into."
147 148
     )
148 149
     install_parser.set_defaults(dispatch=install)
150
+    # 'ver' command
151
+    ver_parser = subparsers.add_parser(
152
+        "ver", help="Get generated version"
153
+    )
154
+    ver_parser.add_argument(
155
+        "package_directory", help="Directory 'miniver' was installed."
156
+    )
157
+    ver_parser.set_defaults(dispatch=ver)
149 158
     return parser
150 159
 
151 160
 
... ...
@@ -192,6 +201,15 @@ def install(args):
192 201
     print("\n".join((msg, _setup_template)).format(package_dir=package_dir))
193 202
 
194 203
 
204
+def ver(args):
205
+    package_dir = args.package_directory
206
+    version_location = glob.glob(f"{package_dir}/**/_version.py")[0]
207
+    version_spec = spec_from_file_location("version", version_location)
208
+    version = module_from_spec(version_spec)
209
+    version_spec.loader.exec_module(version)
210
+    print(version.get_version())
211
+
212
+
195 213
 def main():
196 214
     parser = get_parser()
197 215
     args = parser.parse_args()