class RakeTerraform::PlanTask::Task

Custom rake task to run `terraform plan`

Public Class Methods

new(opts) click to toggle source
# File lib/rake-terraform/plan_task/task.rb, line 9
def initialize(opts)
  @opts = opts
end

Public Instance Methods

execute() click to toggle source
# File lib/rake-terraform/plan_task/task.rb, line 13
def execute
  pre_execute_checks
  Dir.chdir(@opts.get(:input_dir)) do
    puts "=> Generating plan for #{@opts.get(:input_dir)}..."
    if @opts[:unique_state]
      tf_plan(@opts[:output_file], @opts[:state_file])
    else
      tf_plan(@opts[:output_file])
    end
  end
end

Private Instance Methods

ensure_output_directory() click to toggle source
# File lib/rake-terraform/plan_task/task.rb, line 37
def ensure_output_directory
  dir = File.dirname @opts.get(:output_file)
  FileUtils.mkdir_p dir unless File.exist? dir
end
pre_execute_checks() click to toggle source

run pre execution checks

# File lib/rake-terraform/plan_task/task.rb, line 28
def pre_execute_checks
  validate_terraform_installed
  ensure_output_directory
  Dir.chdir(@opts.get(:input_dir)) do
    puts '=> Fetching modules...'
    tf_get
  end
end