Sha256: 9d880195c00bf643acf2c02434bc79f61cdd729684ef0de1fb0bec2564a1883d

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

class Lono::Builder::Dsl::Finalizer::Files
  class Build < Base
    def initialize(options={})
      super
      @output_path = "#{Lono.root}/.output/files"
    end

    def run
      return if Lono::Files.empty?
      logger.debug "Building files"
      clean
      validate!
      build_files
      # build_layers
    end

    def build_files
      Lono::Files.files.each do |file| # using singular file, but is like a "file_list"
        file.build
        file.compress
        # Note: Uploading files happen right before create_stack or execute_change_set
        # after user confirms action, instead of part of the build process
      end
    end

    # TODO: LambdaLayer support
    # def build_layers
    #   layer_items = Registry.layers
    #   layer_items.each do |item|
    #     LambdaLayer.new(@blueprint, item).build
    #   end
    # end
    #

    def clean
      FileUtils.rm_rf(@output_path)
    end

    def validate!
      missing = Lono::Files.files.select do |file|
        !File.exist?(file.full_path)
      end
      return if missing.empty?

      logger.info "ERROR: These files are missing".color(:red)
      logger.info <<~EOL
        The file helper is calling them.
        They need to exist to be uploaded to s3.
      EOL
      missing.each do |file|
        logger.info "    #{pretty_path(file.full_path)}"
        logger.info "    Called at #{file.call_line}"
      end
      logger.info "Please double check that they exist."
      exit 1
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lono-8.0.0.pre.rc3 lib/lono/builder/dsl/finalizer/files/build.rb