Skip to content
Snippets Groups Projects
Commit 83923003 authored by David Bauer's avatar David Bauer
Browse files

build: only evaluate list of site-selections once

parent f99fa1ba
No related branches found
No related tags found
No related merge requests found
......@@ -22,16 +22,17 @@ local function get_customization_file_name(env)
end
local function evaluate_device(env, dev)
local selections = {}
local selections = {
feature = {},
package = {},
}
local funcs = {}
local device_overrides = {}
local function add_elements(element_type, element_list)
-- We depend on the fact both feature and package
-- are already initialized as empty tables
for _, element in ipairs(element_list) do
if not selections[element_type] then
selections[element_type] = {}
end
selections[element_type][element] = true
end
end
......@@ -111,13 +112,23 @@ local function evaluate_device(env, dev)
}
end
function M.get_selection(selection_type, env, dev)
function M.get_selections(env, dev)
local return_object = {
features = {},
packages = {},
}
if not file_exists(get_customization_file_name(env)) then
return {}
return return_object
end
local eval_result = evaluate_device(env, dev)
return collect_keys(eval_result.selections[selection_type] or {})
return_object = {
features = collect_keys(eval_result.selections['feature']),
packages = collect_keys(eval_result.selections['package']),
}
return return_object
end
function M.device_overrides(env, dev)
......
......@@ -87,19 +87,23 @@ local function feature_packages(features)
end
local function site_specific_packages(dev_info)
local site_selections
local site_packages
local feature_inherited_pkgs
local site_features
-- Get all enabled selections from image-customization
site_selections = image_customization_lib.get_selections(env, dev_info)
-- First read enabled features from site
site_features = image_customization_lib.get_selection('feature', env, dev_info)
site_features = site_selections['features']
site_features = compact_list(site_features, false)
-- Create List from packages inherited from features
feature_inherited_pkgs = feature_packages(site_features)
-- Read list of packages from site
site_packages = image_customization_lib.get_selection('package', env, dev_info)
site_packages = site_selections['packages']
-- Concat feature-packages with site-packages
local pkgs = concat_list(feature_inherited_pkgs, site_packages)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment