21
21
_ARGS_TYPE_ALLOWED = [
22
22
"cname" ,
23
23
"cname_base" ,
24
+ "commit_id" ,
24
25
"features" ,
25
26
"platforms" ,
26
27
"flags" ,
27
28
"elements" ,
28
29
"arch" ,
29
30
"version" ,
31
+ "version_and_commit_id" ,
30
32
"graph" ,
31
33
]
32
34
@@ -41,10 +43,11 @@ def main() -> None:
41
43
parser = argparse .ArgumentParser ()
42
44
43
45
parser .add_argument ("--arch" , dest = "arch" )
46
+ parser .add_argument ("--cname" , dest = "cname" )
47
+ parser .add_argument ("--commit" , dest = "commit" )
44
48
parser .add_argument ("--feature-dir" , default = "features" )
45
- parser .add_argument ("--cname" )
46
- parser .add_argument ("--default-arch" )
47
- parser .add_argument ("--default-version" )
49
+ parser .add_argument ("--default-arch" , dest = "default_arch" )
50
+ parser .add_argument ("--default-version" , dest = "default_version" )
48
51
parser .add_argument ("--version" , dest = "version" )
49
52
50
53
parser .add_argument (
@@ -68,7 +71,7 @@ def main() -> None:
68
71
69
72
arch = args .arch
70
73
flavor = None
71
- commit_id = None
74
+ commit_id = args . commit
72
75
gardenlinux_root = path .dirname (args .feature_dir )
73
76
version = args .version
74
77
@@ -80,8 +83,7 @@ def main() -> None:
80
83
81
84
if version is None or version == "" :
82
85
try :
83
- version_data = get_version_and_commit_id_from_files (gardenlinux_root )
84
- version = f"{ version_data [0 ]} -{ version_data [1 ]} "
86
+ version , commit_id = get_version_and_commit_id_from_files (gardenlinux_root )
85
87
except RuntimeError as exc :
86
88
logging .debug (
87
89
"Failed to parse version information for GL root '{0}': {1}" .format (
@@ -92,7 +94,7 @@ def main() -> None:
92
94
version = args .default_version
93
95
94
96
if args .cname :
95
- cname = CName (args .cname , arch = arch , version = version )
97
+ cname = CName (args .cname , arch = arch , commit_id = commit_id , version = version )
96
98
97
99
arch = cname .arch
98
100
flavor = cname .flavor
@@ -108,7 +110,11 @@ def main() -> None:
108
110
"Architecture could not be determined and no default architecture set"
109
111
)
110
112
111
- if version is None or version == "" and (args .type in ("cname" , "version" )):
113
+ if (
114
+ version is None
115
+ or version == ""
116
+ and (args .type in ("cname" , "commit_id" , "version" , "version_and_commit_id" ))
117
+ ):
112
118
raise RuntimeError ("Version not specified and no default version set" )
113
119
114
120
feature_dir_name = path .basename (args .feature_dir )
@@ -160,7 +166,11 @@ def main() -> None:
160
166
print ("," .join (features_by_type ["element" ]))
161
167
elif args .type == "flags" :
162
168
print ("," .join (features_by_type ["flag" ]))
169
+ elif args .type == "commit_id" :
170
+ print (commit_id )
163
171
elif args .type == "version" :
172
+ print (version )
173
+ elif args .type == "version_and_commit_id" :
164
174
print (f"{ version } -{ commit_id } " )
165
175
166
176
0 commit comments