47 lines
996 B
Ruby
Raw Normal View History

# frozen_string_literal: true
require "hardware"
require "diagnostic"
require "extend/ENV/shared"
require "extend/ENV/std"
require "extend/ENV/super"
2013-08-19 12:32:57 -05:00
def superenv?(env)
env != "std" && Superenv.bin
2013-08-19 12:32:57 -05:00
end
module EnvActivation
def activate_extensions!(env: nil)
if superenv?(env)
2013-08-19 12:32:57 -05:00
extend(Superenv)
else
2013-08-19 12:32:59 -05:00
extend(Stdenv)
2013-08-19 12:32:57 -05:00
end
end
def with_build_environment(env: nil, cc: nil, build_bottle: false, bottle_arch: nil)
old_env = to_hash.dup
tmp_env = to_hash.dup.extend(EnvActivation)
tmp_env.activate_extensions!(env: env)
tmp_env.setup_build_environment(cc: cc, build_bottle: build_bottle, bottle_arch: bottle_arch)
replace(tmp_env)
yield
ensure
replace(old_env)
end
def sensitive?(key)
/(cookie|key|token|password)/i =~ key
end
2018-09-17 02:45:00 +02:00
def sensitive_environment
select { |key, _| sensitive?(key) }
end
def clear_sensitive_environment!
each_key { |key| delete key if sensitive?(key) }
end
2013-08-19 12:32:57 -05:00
end
ENV.extend(EnvActivation)