| 
									
										
										
										
											2021-01-12 16:27:25 -05:00
										 |  |  | # typed: true | 
					
						
							|  |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-13 11:16:09 -05:00
										 |  |  | module Homebrew | 
					
						
							|  |  |  |   # Helper functions for reading and writing settings. | 
					
						
							|  |  |  |   # | 
					
						
							|  |  |  |   # @api private | 
					
						
							|  |  |  |   module Settings | 
					
						
							|  |  |  |     extend T::Sig | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     module_function | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     sig { params(setting: T.any(String, Symbol), repo: Pathname).returns(T.nilable(String)) } | 
					
						
							|  |  |  |     def read(setting, repo: HOMEBREW_REPOSITORY) | 
					
						
							|  |  |  |       return unless (repo/".git/config").exist? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       repo.cd do | 
					
						
							|  |  |  |         Utils.popen_read("git", "config", "--get", "homebrew.#{setting}").chomp.presence | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2021-01-12 16:27:25 -05:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-13 11:16:09 -05:00
										 |  |  |     sig { params(setting: T.any(String, Symbol), value: T.any(String, T::Boolean), repo: Pathname).void } | 
					
						
							|  |  |  |     def write(setting, value, repo: HOMEBREW_REPOSITORY) | 
					
						
							|  |  |  |       return unless (repo/".git/config").exist? | 
					
						
							| 
									
										
										
										
											2021-01-12 16:27:25 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-13 11:16:09 -05:00
										 |  |  |       repo.cd do | 
					
						
							|  |  |  |         safe_system "git", "config", "--replace-all", "homebrew.#{setting}", value.to_s | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2021-01-12 16:27:25 -05:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-13 11:16:09 -05:00
										 |  |  |     sig { params(setting: T.any(String, Symbol), repo: Pathname).void } | 
					
						
							|  |  |  |     def delete(setting, repo: HOMEBREW_REPOSITORY) | 
					
						
							|  |  |  |       return unless (repo/".git/config").exist? | 
					
						
							|  |  |  |       return if read(setting, repo: repo).blank? | 
					
						
							| 
									
										
										
										
											2021-01-12 16:27:25 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-13 11:16:09 -05:00
										 |  |  |       repo.cd do | 
					
						
							|  |  |  |         safe_system "git", "config", "--unset-all", "homebrew.#{setting}" | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2021-01-12 16:27:25 -05:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |