Sha256: fed4fc5f002a1c912b95398a88504c7437860302295a4ace7b632d883375c06e
Contents?: true
Size: 1.66 KB
Versions: 1
Compression:
Stored size: 1.66 KB
Contents
require "active_support/configurable" require "net/http" require "json" if defined? ::Rails require 'muchkeys/rails' end module Muchkeys class InvalidKey < StandardError; end class CLIOptionsError < StandardError; end class KeyNotSet < StandardError; end class UnknownApplication < StandardError; end class AmbigousPath < StandardError; end autoload :KeyValidator, 'muchkeys/key_validator' autoload :ApplicationClient, 'muchkeys/application_client' autoload :Secret, 'muchkeys/secret' autoload :CLI, 'muchkeys/cli' autoload :ConsulClient, 'muchkeys/consul_client' include ActiveSupport::Configurable config_accessor :application_name config_accessor :consul_url do 'http://localhost:8500' end config_accessor :private_key config_accessor :public_key config_accessor :application_name config_accessor :secrets_hint config_accessor :search_paths do %w(git/%{application_name}/secrets git/%{application_name}/config git/shared/secrets git/shared/config) end def self.env_keys # parse all environments found in .env and populate them from consul if defined? ::Rails check_dir = ::Rails.root else check_dir = Pathname.getwd end unless File.exists?(check_dir.join(".env")) raise IOError, ".env files are required for Muchkeys ENV injection to work" end File.read(check_dir.join(".env")).each_line.select(&:presence).map { |x| x.split("=")[0] } end def self.populate_environment!(*required_keys) app = ApplicationClient.new(config) app.verify_keys(*required_keys) app.known_keys.each do |key| ENV[key] ||= app.first(key) end nil end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
muchkeys-0.7.0 | lib/muchkeys.rb |