diff --git a/update.py b/update.py index a10d6ea..748b45a 100644 --- a/update.py +++ b/update.py @@ -55,45 +55,46 @@ def fetch_modules(config, relative_path, download_directory): cleaned_config[_k] = flat_add(cleaned_config[_k], _v) # fetch sources and parse them - for src in to_l(d['source']): - i += 1 + if 'source' in d: + for src in to_l(d['source']): + i += 1 - # we download the file - module_name = os.path.basename(src) - if 'http' in src: - path = download_directory - name = 'autocmake_{0}'.format(module_name) - dst = os.path.join(download_directory, 'autocmake_{0}'.format(module_name)) - fetch_url(src, dst) - file_name = dst - fetch_dst_directory = download_directory - else: - if os.path.exists(src): - path = os.path.dirname(src) - name = module_name - file_name = src - fetch_dst_directory = path + # we download the file + module_name = os.path.basename(src) + if 'http' in src: + path = download_directory + name = 'autocmake_{0}'.format(module_name) + dst = os.path.join(download_directory, 'autocmake_{0}'.format(module_name)) + fetch_url(src, dst) + file_name = dst + fetch_dst_directory = download_directory else: - sys.stderr.write("ERROR: {0} does not exist\n".format(src)) - sys.exit(-1) + if os.path.exists(src): + path = os.path.dirname(src) + name = module_name + file_name = src + fetch_dst_directory = path + else: + sys.stderr.write("ERROR: {0} does not exist\n".format(src)) + sys.exit(-1) - # we infer config from the module documentation - # dictionary d overrides the configuration in the module documentation - # this allows to override interpolation inside the module - with open(file_name, 'r') as f: - parsed_config = parse_cmake_module(f.read(), d) - for _k2, _v2 in parsed_config.items(): - if _k2 not in to_d(v): - # we add to clean_config only if the entry does not exist - # in parent autocmake.yml already - # this allows to override - cleaned_config[_k2] = flat_add(cleaned_config[_k2], _v2) + # we infer config from the module documentation + # dictionary d overrides the configuration in the module documentation + # this allows to override interpolation inside the module + with open(file_name, 'r') as f: + parsed_config = parse_cmake_module(f.read(), d) + for _k2, _v2 in parsed_config.items(): + if _k2 not in to_d(v): + # we add to clean_config only if the entry does not exist + # in parent autocmake.yml already + # this allows to override + cleaned_config[_k2] = flat_add(cleaned_config[_k2], _v2) - modules.append(Module(path=path, name=name)) - print_progress_bar(text='- assembling modules:', - done=i, - total=num_sources, - width=30) + modules.append(Module(path=path, name=name)) + print_progress_bar(text='- assembling modules:', + done=i, + total=num_sources, + width=30) print('')