| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: true | 
					
						
							| 
									
										
										
										
											2020-03-26 18:29:21 +00:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Language | 
					
						
							| 
									
										
										
										
											2020-08-17 18:59:02 +02:00
										 |  |  |   # Helper functions for Perl formulae. | 
					
						
							|  |  |  |   # | 
					
						
							|  |  |  |   # @api public | 
					
						
							| 
									
										
										
										
											2020-03-26 18:29:21 +00:00
										 |  |  |   module Perl | 
					
						
							| 
									
										
										
										
											2020-08-17 18:59:02 +02:00
										 |  |  |     # Helper module for replacing `perl` shebangs. | 
					
						
							| 
									
										
										
										
											2020-03-26 18:29:21 +00:00
										 |  |  |     module Shebang | 
					
						
							|  |  |  |       module_function | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       def detected_perl_shebang(formula = self) | 
					
						
							|  |  |  |         perl_path = if formula.uses_from_macos_elements&.include? "perl" | 
					
						
							|  |  |  |           "/usr/bin/perl" | 
					
						
							|  |  |  |         elsif formula.deps.map(&:name).include? "perl" | 
					
						
							|  |  |  |           Formula["perl"].opt_bin/"perl" | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           raise "Cannot detect Perl shebang: formula does not depend on Perl." | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Utils::Shebang::RewriteInfo.new( | 
					
						
							|  |  |  |           %r{^#! ?/usr/bin/(env )?perl$}, | 
					
						
							|  |  |  |           20, # the length of "#! /usr/bin/env perl" | 
					
						
							|  |  |  |           perl_path, | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |