Sha256: e02c6e96f966d92b1f8a199683215283beec2057f01184d141563bbda4865b72
Contents?: true
Size: 1.98 KB
Versions: 1
Compression:
Stored size: 1.98 KB
Contents
require "thor" module Lono::AppFile class Build < Base include Lono::Utils::Item::Zip def initialize_variables @output_files_path = "#{Lono.root}/output/#{@blueprint.name}/files" end def run return unless detect_files? logger.info "Building app/files" build_all end def build_all clean_output validate_files! copy_to_output build_layers compress_output end def validate_files! items = Registry.items + Registry.layers missing = items.select do |item| !File.exist?(item.src_path) end missing_paths = missing.map { |item| item.src_path }.uniq unless missing_paths.empty? logger.info "ERROR: These app/files are missing were used by the s3_key method but are missing".color(:red) missing_paths.each do |path| logger.info " #{path}" end logger.info "Please double check that they exist." exit 1 end end def build_layers layer_items = Registry.layers layer_items.each do |item| LambdaLayer.new(@blueprint, item).build end end def compress_output Registry.items.each do |item| # type can be lambda_layer or file if item.type == "lambda_layer" || item.exist? zip(item) else logger.info "WARN: #{item.src_path} does not exist. Double check that the path is correct in the s3_key call.".color(:yellow) end end end def copy_to_output override_source_paths("#{@blueprint.root}/app/files") self.destination_root = @output_files_path directory(".", verbose: false, context: template_context.get_binding) # Thor::Action end def clean_output FileUtils.rm_rf(@output_files_path) end def detect_files? app_files = Dir["#{@blueprint.root}/app/files/*"] if app_files.empty? false else logger.info "Detected app/files" true end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lono-8.0.0.pre.rc2 | lib/lono/app_file/build.rb |