Sha256: 914849430c42071d634bda6c8095096c919701fdeddbbd03a003927006ce2727

Contents?: true

Size: 868 Bytes

Versions: 80

Compression:

Stored size: 868 Bytes

Contents

module R10K
  module Util

    # Utility methods for dealing with environment variables
    module ExecEnv
      module_function

      # Swap out all environment settings
      #
      # @param env [Hash] The new environment to use
      # @return [void]
      def reset(env)
        env.each_pair do |key, value|
          ENV[key] = value
        end

        (ENV.keys - env.keys).each do |key|
          ENV.delete(key)
        end
      end

      # Add the specified settings to the env for the supplied block
      #
      # @param env [Hash] The values to add to the environment
      # @param block [Proc] The code to call with the modified environnment
      # @return [void]
      def withenv(env, &block)
        original = ENV.to_hash
        reset(original.merge(env))
        block.call
      ensure
        reset(original)
      end
    end
  end
end

Version data entries

80 entries across 80 versions & 2 rubygems

Version Path
r10k-5.0.0 lib/r10k/util/exec_env.rb
r10k-4.1.0 lib/r10k/util/exec_env.rb
r10k-4.0.2 lib/r10k/util/exec_env.rb
r10k-4.0.1 lib/r10k/util/exec_env.rb
r10k-4.0.0 lib/r10k/util/exec_env.rb
r10k-4.0.0.pre lib/r10k/util/exec_env.rb
r10k-3.16.0 lib/r10k/util/exec_env.rb
r10k-3.15.4 lib/r10k/util/exec_env.rb
r10k-3.15.3 lib/r10k/util/exec_env.rb
r10k-3.15.2 lib/r10k/util/exec_env.rb
r10k-3.15.1 lib/r10k/util/exec_env.rb
r10k-3.15.0 lib/r10k/util/exec_env.rb
akerl-r10k-3.14.2.1 lib/r10k/util/exec_env.rb
r10k-3.14.2 lib/r10k/util/exec_env.rb
r10k-3.14.1 lib/r10k/util/exec_env.rb
r10k-3.14.0 lib/r10k/util/exec_env.rb
r10k-3.13.0 lib/r10k/util/exec_env.rb
r10k-3.12.1 lib/r10k/util/exec_env.rb
r10k-3.12.0 lib/r10k/util/exec_env.rb
r10k-3.11.0 lib/r10k/util/exec_env.rb