Добавил возможность указания аргументов коммандной строки.
Могут быть добавлены только те аргументы, которые есть в настройках
This commit is contained in:
parent
9af4a76159
commit
32af9273bc
|
|
@ -2,12 +2,22 @@ import os
|
|||
|
||||
import settings
|
||||
import instruments
|
||||
import argparse
|
||||
|
||||
cmd_args = {'version' : '1.2.3', 'some_field' : 'some_value', 'action' : 'build'}
|
||||
keys = instruments.GetConfigKeys(settings.build_ready_configs)
|
||||
|
||||
instruments.CompileConfigs(settings.build_ready_configs, cmd_args)
|
||||
parser = argparse.ArgumentParser()
|
||||
for key in keys:
|
||||
arg = "--{0}".format(key)
|
||||
parser.add_argument(arg)
|
||||
|
||||
for bc in settings.build_ready_configs:
|
||||
args = parser.parse_args()
|
||||
print vars(args)
|
||||
|
||||
build_ready_configs = instruments.GetUnionConfigs(settings.build_ready_configs, cmd_args)
|
||||
|
||||
for bc in build_ready_configs:
|
||||
print bc['name']
|
||||
|
||||
sln_path = bc['sln_path']
|
||||
|
|
|
|||
|
|
@ -86,19 +86,35 @@ def BuildSolution(mdtool, abs_path_to_sln, config):
|
|||
ret_code = call(build_cmd_text, shell=True)
|
||||
print('finished with return code: {0}'.format(ret_code))
|
||||
|
||||
def CompileConfigs(configs_lst, cmd_args):
|
||||
def GetUnionConfigs(configs_lst, cmd_args=None):
|
||||
|
||||
union_configs = []
|
||||
for c_dict in configs_lst:
|
||||
|
||||
ancestors = GetAncestorsFromRootTo(c_dict)
|
||||
ancestors.append(cmd_args)
|
||||
if cmd_args is not None:
|
||||
ancestors.append(cmd_args)
|
||||
|
||||
union_config = {}
|
||||
for a in ancestors:
|
||||
union_config.update(a)
|
||||
|
||||
c_dict.clear()
|
||||
c_dict.update(union_config)
|
||||
union_configs.append(union_config)
|
||||
|
||||
return union_configs
|
||||
|
||||
def GetConfigKeys(configs_lst):
|
||||
union_configs = GetUnionConfigs(configs_lst)
|
||||
|
||||
keys = [];
|
||||
for config in union_configs:
|
||||
for key in config.keys():
|
||||
keys.append(key)
|
||||
|
||||
# remove duplicates
|
||||
keys = list(set(keys))
|
||||
|
||||
return keys
|
||||
|
||||
def GetAncestorsFromRootTo(config):
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue