Sha256: eb745ba7af891235272861912efe85f378647496a5156e5817a47894f96a9fab

Contents?: true

Size: 1021 Bytes

Versions: 9

Compression:

Stored size: 1021 Bytes

Contents

module Ruby
  module Terraform
    module Commands
      class ApplyCommand
        include ExecutionSupport

        attr_accessor :dir
        attr_accessor :state
        attr_accessor :vars
        attr_accessor :auto_approve

        def initialize(opts = {})
          @dir = opts[:dir]
          @state = opts[:state]
          @vars = opts[:vars]
          @auto_approve = if opts[:auto_approve].nil?
                            true
                          else
                            opts[:auto_approve]
                          end
        end

        def command
          cmd = %W[#{tf_binary} apply]

          cmd += ['-state', state] if state
          cmd += ['-auto-approve'] if auto_approve

          if vars
            vars.each do |key, value|
              var_value = value.is_a?(String) ? value : JSON.generate(value)
              cmd += ['-var', "#{key}=#{var_value}"]
            end
          end

          cmd += [dir] if dir
          cmd
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rake-terraform-wrapper-0.3.3 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.3.2 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.3.1 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.3.0 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.2.3 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.2.2 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.2.1 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.2.0 lib/ruby/terraform/commands/apply_command.rb
rake-terraform-wrapper-0.1.0 lib/ruby/terraform/commands/apply_command.rb