Class: Terraspace::Compiler::Builder

Inherits:
Object
  • Object
show all
Includes:
Basename, CommandsConcern
Defined in:
lib/terraspace/compiler/builder.rb,
lib/terraspace/compiler/builder/skip.rb

Defined Under Namespace

Classes: Skip

Instance Method Summary collapse

Methods included from Basename

#basename

Methods included from CommandsConcern

#command_is?, #requires_backend?, #requires_backend_commands

Constructor Details

#initialize(mod) ⇒ Builder

Returns a new instance of Builder.



6
7
8
# File 'lib/terraspace/compiler/builder.rb', line 6

def initialize(mod)
  @mod = mod
end

Instance Method Details

#buildObject



10
11
12
13
14
# File 'lib/terraspace/compiler/builder.rb', line 10

def build
  build_config
  build_module if @mod.resolved
  build_tfvars unless command_is?(:seed) #  avoid dependencies being built and erroring when backend bucket doesnt exist
end

#build_configObject

build common config files: provider and backend for the root module



17
18
19
20
# File 'lib/terraspace/compiler/builder.rb', line 17

def build_config
  return unless build?
  build_config_terraform
end

#build_moduleObject



22
23
24
25
26
# File 'lib/terraspace/compiler/builder.rb', line 22

def build_module
  with_mod_file do |src_path|
    build_mod_file(src_path)
  end
end

#build_tfvarsObject



28
29
30
31
# File 'lib/terraspace/compiler/builder.rb', line 28

def build_tfvars
  return unless build?
  Strategy::Tfvar.new(@mod).run # writer within Strategy to control file ordering
end