... | ... |
@@ -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() |