module Terraspace::Booter

Public Instance Methods

boot() click to toggle source
# File lib/terraspace/booter.rb, line 3
def boot
  run_hooks
  Terraspace::Bundle.require # load plugins
  load_plugin_default_configs
  Terraspace::App::Inits.run_all
  set_plugin_cache!
end
load_plugin_default_configs() click to toggle source
# File lib/terraspace/booter.rb, line 11
def load_plugin_default_configs
  Terraspace::Plugin.config_classes.each do |klass|
    # IE: TerraspacePluginAws::Interfaces::Config.instance.load_project_config
    klass.instance.load_project_config
  end
end
run_hook(env=nil) click to toggle source
# File lib/terraspace/booter.rb, line 37
def run_hook(env=nil)
  name = env ? "boot/#{env}" : "boot"
  path = "#{Terraspace.root}/config/#{name}.rb"
  require path if File.exist?(path)
end
run_hooks() click to toggle source

Special boot hooks run super early, even before plugins are loaded. Useful for setting env vars and other early things.

config/boot.rb
config/boot/dev.rb
# File lib/terraspace/booter.rb, line 32
def run_hooks
  run_hook
  run_hook(Terraspace.env)
end
set_plugin_cache!() click to toggle source
# File lib/terraspace/booter.rb, line 18
def set_plugin_cache!
  plugin_cache = Terraspace.config.terraform.plugin_cache
  return unless plugin_cache.enabled
  dir = ENV['TF_PLUGIN_CACHE_DIR'] ||= plugin_cache.dir
  FileUtils.mkdir_p(dir)
  dir
end