| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-03 13:09:07 +01:00
										 |  |  | require "hardware" | 
					
						
							|  |  |  | require "extend/ENV/shared" | 
					
						
							|  |  |  | require "extend/ENV/std" | 
					
						
							|  |  |  | require "extend/ENV/super" | 
					
						
							| 
									
										
										
										
											2013-08-19 12:32:57 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | def superenv? | 
					
						
							| 
									
										
										
										
											2020-05-23 13:49:10 +01:00
										 |  |  |   Homebrew.args.env != "std" && Superenv.bin | 
					
						
							| 
									
										
										
										
											2013-08-19 12:32:57 -05:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module EnvActivation | 
					
						
							|  |  |  |   def activate_extensions! | 
					
						
							|  |  |  |     if superenv? | 
					
						
							|  |  |  |       extend(Superenv) | 
					
						
							|  |  |  |     else | 
					
						
							| 
									
										
										
										
											2013-08-19 12:32:59 -05:00
										 |  |  |       extend(Stdenv) | 
					
						
							| 
									
										
										
										
											2013-08-19 12:32:57 -05:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-08-19 12:32:59 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def with_build_environment | 
					
						
							|  |  |  |     old_env = to_hash.dup | 
					
						
							|  |  |  |     tmp_env = to_hash.dup.extend(EnvActivation) | 
					
						
							|  |  |  |     tmp_env.activate_extensions! | 
					
						
							|  |  |  |     tmp_env.setup_build_environment | 
					
						
							|  |  |  |     replace(tmp_env) | 
					
						
							|  |  |  |     yield | 
					
						
							|  |  |  |   ensure | 
					
						
							|  |  |  |     replace(old_env) | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2017-04-22 16:31:19 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-13 22:48:22 +08:00
										 |  |  |   def sensitive?(key) | 
					
						
							|  |  |  |     /(cookie|key|token|password)/i =~ key | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2018-09-17 02:45:00 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-13 22:48:22 +08:00
										 |  |  |   def sensitive_environment | 
					
						
							|  |  |  |     select { |key, _| sensitive?(key) } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def clear_sensitive_environment! | 
					
						
							|  |  |  |     each_key { |key| delete key if sensitive?(key) } | 
					
						
							| 
									
										
										
										
											2017-04-22 16:31:19 +01:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-08-19 12:32:57 -05:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ENV.extend(EnvActivation) |