Sha256: 3a1087bbfb9754390e55f371eabc2d8a3a2663c6288ab2970b261362d1e2af2f

Contents?: true

Size: 1.33 KB

Versions: 41

Compression:

Stored size: 1.33 KB

Contents

require 'dotenv'

class Jets::Dotenv
  def self.load!(remote=false)
    new(remote).load!
  end

  def initialize(remote=false)
    @remote = ENV['JETS_ENV_REMOTE'] || remote
  end

  def load!
    return if on_aws? # this prevents ssm calls if used in dotenv files
    vars = ::Dotenv.load(*dotenv_files)
    Ssm.new(vars).interpolate!
  end

  def on_aws?
    !!ENV['_HANDLER'] # https://docs.aws.amazon.com/lambda/latest/dg/lambda-environment-variables.html
  end

  # dotenv files with the following precedence:
  #
  # - .env.development.jets_env_extra (highest)
  # - .env.development.remote (2nd highest, only if JETS_ENV_REMOTE=1)
  # - .env.development.local (unless JETS_ENV_REMOTE=1)
  # - .env.development
  # - .env.local - This file is loaded for all environments _except_ `test` or unless JETS_ENV_REMOTE=1
  # - .env - The original (lowest)
  #
  def dotenv_files
    files = [
      root.join(".env"),
      (root.join(".env.local") unless (Jets.env.test? || @remote)),
      root.join(".env.#{Jets.env}"),
      (root.join(".env.#{Jets.env}.local") unless @remote),
    ]
    files << root.join(".env.#{Jets.env}.remote") if @remote
    if ENV["JETS_ENV_EXTRA"]
      files << root.join(".env.#{Jets.env}.#{ENV["JETS_ENV_EXTRA"]}")
    end
    files.compact
  end

  def root
    Jets.root || Pathname.new(ENV["JETS_ROOT"] || Dir.pwd)
  end
end

Version data entries

41 entries across 41 versions & 2 rubygems

Version Path
jets-3.2.2 lib/jets/dotenv.rb
jets-3.2.1 lib/jets/dotenv.rb
jets.benforeva-3.0.17.pre.mount.pre.fix lib/jets/dotenv.rb
jets-3.2.0 lib/jets/dotenv.rb
jets-3.1.5 lib/jets/dotenv.rb
jets-3.1.4 lib/jets/dotenv.rb
jets-3.1.3 lib/jets/dotenv.rb
jets-3.1.2 lib/jets/dotenv.rb
jets-3.1.1 lib/jets/dotenv.rb
jets-3.1.0 lib/jets/dotenv.rb
jets-3.0.23 lib/jets/dotenv.rb
jets-3.0.22 lib/jets/dotenv.rb
jets-3.0.21 lib/jets/dotenv.rb
jets-3.0.20 lib/jets/dotenv.rb
jets-3.0.19 lib/jets/dotenv.rb
jets-3.0.18 lib/jets/dotenv.rb
jets-3.0.17 lib/jets/dotenv.rb
jets-3.0.16 lib/jets/dotenv.rb
jets-3.0.15 lib/jets/dotenv.rb
jets-3.0.14 lib/jets/dotenv.rb