summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util/execution.rb
blob: 7db7137fb90abe7aa510cc80a1ef7cd531765bf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module Puppet::Util::Execution
    module_function

    # Run some code with a specific environment.  Resets the environment back to
    # what it was at the end of the code.
    def withenv(hash)
        oldvals = {}
        hash.each do |name, val|
            name = name.to_s
            oldvals[name] = ENV[name]
            ENV[name] = val
        end

        yield
    ensure
        oldvals.each do |name, val|
            ENV[name] = val
        end
    end
end