Module: Envkey::Core

Defined in:
lib/envkey/core.rb

Class Method Summary collapse

Class Method Details

.load_envObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/envkey/core.rb', line 7

def self.load_env
  original_env = ENV.to_h
  overwrite_envkey_vars = JSON.parse(ENV["__ENVKEY_VARS"] || "[]")

  res = Envkey::Fetch.fetch_env
  if res && res.gsub("\n","").gsub("\r", "") != "" && !res.start_with?("error:")
    envs = JSON.parse(res)
    updated_envkey_vars = []
    envs.each do |k,v|
      var = k.upcase
      if !ENV[var] || overwrite_envkey_vars.include?(var)
        updated_envkey_vars << var
        ENV[var] = v
      end
    end

    ENV["__ENVKEY_VARS"] = updated_envkey_vars.to_json

    return updated_envkey_vars
  elsif res.start_with?("error:")
    STDERR.puts "envkey-source " + res
    raise "ENVKEY invalid. Couldn't load vars."
  else
    raise "ENVKEY invalid. Couldn't load vars."
  end
end