Sha256: e786b46596f16a8b4693b0696075d7391c9a69a46bec5464f4f57e30a6af7fd3

Contents?: true

Size: 857 Bytes

Versions: 10

Compression:

Stored size: 857 Bytes

Contents

require 'set'
require 'json'
require 'envkey/fetch'

module Envkey::Core

  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

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
envkey-2.4.2 lib/envkey/core.rb
envkey-2.4.0 lib/envkey/core.rb
envkey-2.3.0 lib/envkey/core.rb
envkey-2.1.0 lib/envkey/core.rb
envkey-2.0.10 lib/envkey/core.rb
envkey-2.0.9 lib/envkey/core.rb
envkey-2.0.8 lib/envkey/core.rb
envkey-2.0.7 lib/envkey/core.rb
envkey-2.0.6 lib/envkey/core.rb
envkey-2.0.5 lib/envkey/core.rb