Sha256: 266b764f46628beb0d01355087c54ff46aafb72fcee43e9bf0eeec19d2f18551

Contents?: true

Size: 1.73 KB

Versions: 26

Compression:

Stored size: 1.73 KB

Contents

# frozen_string_literal: true

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

module RakeTerraform
  module Tasks
    class Output < RakeFactory::Task
      default_name :output
      default_prerequisites(RakeFactory::DynamicValue.new do |t|
        [t.ensure_task_name]
      end)
      default_description(RakeFactory::DynamicValue.new do |t|
        "Output #{t.configuration_name} using terraform"
      end)

      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 :input, 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

        module_directory =
          File.join(FileUtils.pwd, t.source_directory)
        configuration_directory =
          File.join(t.work_directory, t.source_directory)

        Kernel.puts("Output of #{t.configuration_name}".cyan)

        FileUtils.rm_rf(configuration_directory)
        FileUtils.mkdir_p(configuration_directory)

        RubyTerraform.init(
          chdir: configuration_directory,
          from_module: module_directory,
          backend_config: t.backend_config,
          no_color: t.no_color,
          input: t.input
        )
        output = RubyTerraform.output(
          chdir: configuration_directory,
          no_color: t.no_color,
          state: t.state_file
        )

        Kernel.puts(output) unless t.no_print_output

        output
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
rake_terraform-1.23.0.pre.3 lib/rake_terraform/tasks/output.rb
rake_terraform-1.23.0.pre.2 lib/rake_terraform/tasks/output.rb
rake_terraform-1.23.0.pre.1 lib/rake_terraform/tasks/output.rb
rake_terraform-1.22.0 lib/rake_terraform/tasks/output.rb
rake_terraform-1.22.0.pre.4 lib/rake_terraform/tasks/output.rb
rake_terraform-1.22.0.pre.3 lib/rake_terraform/tasks/output.rb
rake_terraform-1.22.0.pre.2 lib/rake_terraform/tasks/output.rb
rake_terraform-1.22.0.pre.1 lib/rake_terraform/tasks/output.rb
rake_terraform-1.21.0 lib/rake_terraform/tasks/output.rb
rake_terraform-1.21.0.pre.2 lib/rake_terraform/tasks/output.rb
rake_terraform-1.21.0.pre.1 lib/rake_terraform/tasks/output.rb
rake_terraform-1.20.0 lib/rake_terraform/tasks/output.rb
rake_terraform-1.20.0.pre.3 lib/rake_terraform/tasks/output.rb
rake_terraform-1.20.0.pre.2 lib/rake_terraform/tasks/output.rb
rake_terraform-1.20.0.pre.1 lib/rake_terraform/tasks/output.rb
rake_terraform-1.19.0 lib/rake_terraform/tasks/output.rb
rake_terraform-1.19.0.pre.1 lib/rake_terraform/tasks/output.rb
rake_terraform-1.18.0 lib/rake_terraform/tasks/output.rb
rake_terraform-1.18.0.pre.1 lib/rake_terraform/tasks/output.rb
rake_terraform-1.17.0 lib/rake_terraform/tasks/output.rb