Sha256: 696e63ea3fca78703f34e9c9a939d40ab1c5ceb923eab5a33ba747ce3d1205e4

Contents?: true

Size: 848 Bytes

Versions: 22

Compression:

Stored size: 848 Bytes

Contents

class Kamal::Configuration::Env
  include Kamal::Configuration::Validation

  attr_reader :context, :secrets
  attr_reader :clear, :secret_keys
  delegate :argumentize, to: Kamal::Utils

  def initialize(config:, secrets:, context: "env")
    @clear = config.fetch("clear", config.key?("secret") || config.key?("tags") ? {} : config)
    @secrets = secrets
    @secret_keys = config.fetch("secret", [])
    @context = context
    validate! config, context: context, with: Kamal::Configuration::Validator::Env
  end

  def clear_args
    argumentize("--env", clear)
  end

  def secrets_io
    Kamal::EnvFile.new(secret_keys.to_h { |key| [ key, secrets[key] ] }).to_io
  end

  def merge(other)
    self.class.new \
      config: { "clear" => clear.merge(other.clear), "secret" => secret_keys | other.secret_keys },
      secrets: secrets
  end
end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
kamal-2.5.3 lib/kamal/configuration/env.rb
kamal-2.5.2 lib/kamal/configuration/env.rb
kamal-2.5.1 lib/kamal/configuration/env.rb
kamal-2.5.0 lib/kamal/configuration/env.rb
kamal-2.4.0 lib/kamal/configuration/env.rb
nocoffee-kamal-2.3.0.3 lib/kamal/configuration/env.rb
nocoffee-kamal-2.3.0.2 lib/kamal/configuration/env.rb
nocoffee-kamal-2.3.0.1 lib/kamal/configuration/env.rb
kamal-2.3.0 lib/kamal/configuration/env.rb
kamal-2.2.2 lib/kamal/configuration/env.rb
kamal-2.2.1 lib/kamal/configuration/env.rb
kamal-2.2.0 lib/kamal/configuration/env.rb
kamal-2.1.2 lib/kamal/configuration/env.rb
kamal-2.1.1 lib/kamal/configuration/env.rb
kamal-2.1.0 lib/kamal/configuration/env.rb
kamal-2.0.0 lib/kamal/configuration/env.rb
kamal-2.0.0.rc4 lib/kamal/configuration/env.rb
kamal-2.0.0.rc3 lib/kamal/configuration/env.rb
kamal-2.0.0.rc2 lib/kamal/configuration/env.rb
kamal-2.0.0.rc1 lib/kamal/configuration/env.rb