Sha256: 78ecd845a753ce9bf853479593f9b220305a68dd8d94e4655240d964ba5b0f41

Contents?: true

Size: 1.37 KB

Versions: 34

Compression:

Stored size: 1.37 KB

Contents

# The placeholder stack is a special stack that is useful in case there are no app/stacks.
# We build a placeholder back just so we have backend.tf to be used to grab info.
# It's useful for the summary command.
module Terraspace::CLI::Build
  class Placeholder
    include Terraspace::Util::Logging

    def initialize(options={})
      @options = options
    end

    # Grab the last module and build that.
    # Assume the backend key has the same prefix
    # Note: Tried building a empty "null" stack but with TFC a null space workspace is created, which is undesired.
    def build
      return if ENV['TS_SUMMARY_BUILD'] == '0'

      mod = @options[:mod]
      if !mod or %w[placeholder].include?(mod)
        logger.info "Building one of the modules to get backend.tf info"
        mod = find_stack
      end
      Terraspace::Builder.new(@options.merge(mod: mod, init: false)).run # generate and init
      Terraspace::Mod.new(mod, @options) # mod metadata
    end

    # Used by: terraspace build placeholder
    def find_stack
      stack_paths = Dir.glob("{app,vendor}/stacks/*")
      stack_paths.select! do |path|
        select = Terraspace::Compiler::Select.new(path)
        select.selected?
      end
      mod_path = stack_paths.last
      unless mod_path
        logger.info "No stacks found."
        exit 0
      end
      File.basename(mod_path) # mod name
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
terraspace-1.0.6 lib/terraspace/cli/build/placeholder.rb
terraspace-1.0.5 lib/terraspace/cli/build/placeholder.rb
terraspace-1.0.4 lib/terraspace/cli/build/placeholder.rb
terraspace-1.0.3 lib/terraspace/cli/build/placeholder.rb
terraspace-1.0.2 lib/terraspace/cli/build/placeholder.rb
terraspace-1.0.1 lib/terraspace/cli/build/placeholder.rb
terraspace-1.0.0 lib/terraspace/cli/build/placeholder.rb
terraspace-0.7.2 lib/terraspace/cli/build/placeholder.rb
terraspace-0.7.1 lib/terraspace/cli/build/placeholder.rb
terraspace-0.7.0 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.23 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.22 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.21 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.20 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.19 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.18 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.17 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.16 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.15 lib/terraspace/cli/build/placeholder.rb
terraspace-0.6.13 lib/terraspace/cli/build/placeholder.rb