|
4 | 4 | from .parser import Parser |
5 | 5 |
|
6 | 6 | from functools import reduce |
7 | | -from os.path import basename, dirname |
8 | | - |
| 7 | +from os import path |
9 | 8 | import argparse |
| 9 | +import os |
10 | 10 | import re |
11 | 11 | import sys |
12 | 12 |
|
@@ -44,6 +44,7 @@ def main(): |
44 | 44 | arch = None |
45 | 45 | cname_base = None |
46 | 46 | commit_id = None |
| 47 | + gardenlinux_root = path.dirname(args.feature_dir) |
47 | 48 | version = None |
48 | 49 |
|
49 | 50 | if args.cname: |
@@ -85,12 +86,14 @@ def main(): |
85 | 86 | assert args.default_arch, "Architecture could not be determined and no default architecture set" |
86 | 87 | arch = args.default_arch |
87 | 88 |
|
| 89 | + if not commit_id or not version: |
| 90 | + version, commit_id = get_version_and_commit_id_from_files(gardenlinux_root) |
| 91 | + |
88 | 92 | if not version and (args.type in ("cname", "version" )): |
89 | 93 | assert args.default_version, "version not specified and no default version set" |
90 | 94 | version = args.default_version |
91 | 95 |
|
92 | | - gardenlinux_root = dirname(args.feature_dir) |
93 | | - feature_dir_name = basename(args.feature_dir) |
| 96 | + feature_dir_name = path.basename(args.feature_dir) |
94 | 97 |
|
95 | 98 | if gardenlinux_root == "": |
96 | 99 | gardenlinux_root = "." |
@@ -149,6 +152,20 @@ def get_cname_base(sorted_features): |
149 | 152 | lambda a, b : a + ("-" if not b.startswith("_") else "") + b, sorted_features |
150 | 153 | ) |
151 | 154 |
|
| 155 | +def get_version_and_commit_id_from_files(gardenlinux_root): |
| 156 | + commit_id = None |
| 157 | + version = None |
| 158 | + |
| 159 | + if os.access(path.join(gardenlinux_root, "COMMIT"), os.R_OK): |
| 160 | + with open(path.join(gardenlinux_root, "COMMIT"), "r") as fp: |
| 161 | + commit_id = fp.read().strip() |
| 162 | + |
| 163 | + if os.access(path.join(gardenlinux_root, "VERSION"), os.R_OK): |
| 164 | + with open(path.join(gardenlinux_root, "VERSION"), "r") as fp: |
| 165 | + version = fp.read().strip() |
| 166 | + |
| 167 | + return (version, commit_id) |
| 168 | + |
152 | 169 | def get_minimal_feature_set(graph): |
153 | 170 | return set([node for (node, degree) in graph.in_degree() if degree == 0]) |
154 | 171 |
|
|
0 commit comments