Sha256: 7577bfe3251377e5601227ae25b22440807d1dcd9a78b98fe744c81883e0e8dc

Contents?: true

Size: 933 Bytes

Versions: 36

Compression:

Stored size: 933 Bytes

Contents

module Terraspace::Terraform::Args
  class Custom
    extend Memoist
    include Dsl
    include DslEvaluator

    attr_accessor :name
    def initialize(mod, name)
      @mod, @name = mod, name
      @commands = {}
    end

    def build
      evaluate_file("#{Terraspace.root}/config/args/terraform.rb")
      evaluate_file("#{@mod.root}/config/args/terraform.rb")
      @commands.deep_stringify_keys!
    end
    memoize :build

    def args
      build
      args = dig("args")
      args.compact.flatten
    end

    def var_files
      build
      var_files = dig("var_files")
      var_files.select! { |f| var_file_exist?(f) }
      var_files.map { |f| "-var-file=#{f}" }
    end

    def env_vars
      build
      dig("env", {})
    end

    def var_file_exist?(var_file)
      File.exist?("#{@mod.cache_dir}/#{var_file}")
    end

    def dig(prop, default=[])
      @commands.dig(@name, prop) || default
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
terraspace-0.6.23 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.22 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.21 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.20 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.19 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.18 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.17 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.16 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.15 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.13 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.12 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.11 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.10 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.9 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.8 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.7 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.6 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.5 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.4 lib/terraspace/terraform/args/custom.rb
terraspace-0.6.3 lib/terraspace/terraform/args/custom.rb