| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  | # typed: strict | 
					
						
							| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-05 17:17:03 -05:00
										 |  |  | # Match taps' formulae, e.g. `someuser/sometap/someformula` | 
					
						
							| 
									
										
										
										
											2024-01-18 22:18:42 +00:00
										 |  |  | HOMEBREW_TAP_FORMULA_REGEX = T.let(%r{^([\w-]+)/([\w-]+)/([\w+-.@]+)$}, Regexp) | 
					
						
							| 
									
										
										
										
											2020-11-05 17:17:03 -05:00
										 |  |  | # Match taps' casks, e.g. `someuser/sometap/somecask` | 
					
						
							| 
									
										
										
										
											2024-01-18 22:18:42 +00:00
										 |  |  | HOMEBREW_TAP_CASK_REGEX = T.let(%r{^([\w-]+)/([\w-]+)/([a-z0-9\-_]+)$}, Regexp) | 
					
						
							| 
									
										
										
										
											2023-01-31 00:09:57 -08:00
										 |  |  | # Match main cask taps' casks, e.g. `homebrew/cask/somecask` or `somecask` | 
					
						
							| 
									
										
										
										
											2024-01-18 22:18:42 +00:00
										 |  |  | HOMEBREW_MAIN_TAP_CASK_REGEX = T.let(%r{^([Hh]omebrew/(?:homebrew-)?cask/)?[a-z0-9\-_]+$}, Regexp) | 
					
						
							| 
									
										
										
										
											2020-11-05 17:17:03 -05:00
										 |  |  | # Match taps' directory paths, e.g. `HOMEBREW_LIBRARY/Taps/someuser/sometap` | 
					
						
							| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  | HOMEBREW_TAP_DIR_REGEX = T.let( | 
					
						
							| 
									
										
										
										
											2024-01-18 22:18:42 +00:00
										 |  |  |   %r{#{Regexp.escape(HOMEBREW_LIBRARY.to_s)}/Taps/(?<user>[\w-]+)/(?<repo>[\w-]+)}, Regexp | 
					
						
							| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2020-11-05 17:17:03 -05:00
										 |  |  | # Match taps' formula paths, e.g. `HOMEBREW_LIBRARY/Taps/someuser/sometap/someformula` | 
					
						
							| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  | HOMEBREW_TAP_PATH_REGEX = T.let(Regexp.new(HOMEBREW_TAP_DIR_REGEX.source + %r{(?:/.*)?$}.source).freeze, Regexp) | 
					
						
							| 
									
										
										
										
											2020-11-05 17:17:03 -05:00
										 |  |  | # Match official taps' casks, e.g. `homebrew/cask/somecask or homebrew/cask-versions/somecask` | 
					
						
							| 
									
										
										
										
											2023-04-18 00:22:13 +01:00
										 |  |  | HOMEBREW_CASK_TAP_CASK_REGEX = | 
					
						
							| 
									
										
										
										
											2024-01-18 22:18:42 +00:00
										 |  |  |   T.let(%r{^(?:([Cc]askroom)/(cask|versions)|([Hh]omebrew)/(?:homebrew-)?(cask|cask-[\w-]+))/([\w+-.]+)$}, | 
					
						
							| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  |         Regexp) | 
					
						
							| 
									
										
										
										
											2024-01-18 22:18:42 +00:00
										 |  |  | HOMEBREW_OFFICIAL_REPO_PREFIXES_REGEX = T.let(/^(home|linux)brew-/, Regexp) |