lib/lono/builder/configset/definition/context.rb in lono-8.0.0.pre.rc3 vs lib/lono/builder/configset/definition/context.rb in lono-8.0.0.pre.rc4

- old
+ new

@@ -6,21 +6,62 @@ load_vars load_helpers end # Docs: https://lono.cloud/docs/configsets/layering/ - # Layering is simple enough to keep in this method. + # Think layering is simple enough to keep in this method for now. + # Consider trying to combine with Lono::Layering::Layer for uniformity though. def load_vars - logger.debug "Layers for configset #{@configset.name}:" - evaluate_layer("#{@configset.root}/vars.rb") # source defaults - evaluate_layer("#{Lono.root}/config/configsets/#{@configset.name}/vars.rb") # source overrides - evaluate_layer("#{@blueprint.root}/config/configsets/vars/#{@configset.name}.rb") # blueprint overrides - evaluate_layer("#{Lono.root}/config/blueprints/#{@blueprint.name}/configsets/vars/#{@configset.name}.rb") # user overrides + layers.each do |layer| + evaluate_file(layer) + end end - def evaluate_layer(path) - logger.debug " #{pretty_path(path)}" if File.exist?(path) || ENV['LONO_SHOW_ALL_LAYERS'] - evaluate_file(path) + def layers + paths = [ + "#{@configset.root}/vars.rb", # source defaults + "#{Lono.root}/config/configsets/#{@configset.name}/vars.rb", # source overrides + "#{@blueprint.root}/config/configsets/vars/#{@configset.name}.rb", # blueprint overrides + "#{Lono.root}/config/blueprints/#{@blueprint.name}/configsets/vars/#{@configset.name}.rb", # user overrides + ] + show_layers(paths) + paths + end + + def show_layers(paths) + if ENV['LONO_LAYERS_ALL'] + show_all_layers(paths) + else + show_existing_layers(paths) + end + end + + def show_all_layers(paths) + show_header + paths.each do |path| + show_layer(path) + end + end + + def show_existing_layers(paths) + existing = paths.select { |path| File.exist?(path) } + return if existing.empty? + show_header + existing.each do |path| + show_layer(path) + end + end + + def show_header + logger.info " Configset Layers #{@configset.name}" + end + + def show_layer(path) + logger.info " #{pretty_path(path)}" + end + + def show_layers? + Lono.config.layering.show || ENV['LONO_LAYERS'] end def load_helpers load_helper_files("#{@configset.root}/helpers", type: :configset) end