Sha256: b62c7ef88f98bfecf54a2d2685b776577d72370424d9772e4d638fcb27ee00ca

Contents?: true

Size: 1.52 KB

Versions: 3

Compression:

Stored size: 1.52 KB

Contents

require 'rake_factory'
require 'ruby_terraform'
require 'ostruct'
require 'colored2'

module RakeTerraform
  module Tasks
    class Output < RakeFactory::Task
      default_name :output
      default_prerequisites ->(t) { [t.ensure_task_name] }
      default_description ->(t) {
        "Output #{t.configuration_name} using terraform"
      }

      parameter :configuration_name, :required => true
      parameter :source_directory, :required => true
      parameter :work_directory, :required => true

      parameter :backend_config

      parameter :state_file

      parameter :debug, :default => false
      parameter :no_color, :default => false
      parameter :no_print_output, :default => false

      parameter :ensure_task_name, :default => :'terraform:ensure'

      action do |t|
        Colored2.disable! if t.no_color

        configuration_directory =
            File.join(t.work_directory, t.source_directory)

        puts "Output of #{t.configuration_name}".cyan
        RubyTerraform.clean(
            directory: configuration_directory)

        mkdir_p File.dirname(configuration_directory)
        cp_r t.source_directory, configuration_directory

        Dir.chdir(configuration_directory) do
          RubyTerraform.init(
              backend_config: t.backend_config,
              no_color: t.no_color)

          output = RubyTerraform.output(
              no_color: t.no_color,
              state: t.state_file)

          puts output unless t.no_print_output

          output
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rake_terraform-1.1.0 lib/rake_terraform/tasks/output.rb
rake_terraform-1.0.0.pre.pre.2 lib/rake_terraform/tasks/output.rb
rake_terraform-1.0.0.pre.pre.1 lib/rake_terraform/tasks/output.rb