utils/shebang: add rewrite_shebang
This commit is contained in:
		
							parent
							
								
									0fd66ee398
								
							
						
					
					
						commit
						119b3fe69a
					
				@ -6,6 +6,7 @@ require "lock_file"
 | 
			
		||||
require "formula_pin"
 | 
			
		||||
require "hardware"
 | 
			
		||||
require "utils/bottles"
 | 
			
		||||
require "utils/shebang"
 | 
			
		||||
require "utils/shell"
 | 
			
		||||
require "build_environment"
 | 
			
		||||
require "build_options"
 | 
			
		||||
@ -50,6 +51,7 @@ require "find"
 | 
			
		||||
class Formula
 | 
			
		||||
  include FileUtils
 | 
			
		||||
  include Utils::Inreplace
 | 
			
		||||
  include Utils::Shebang
 | 
			
		||||
  include Utils::Shell
 | 
			
		||||
  extend Enumerable
 | 
			
		||||
  extend Forwardable
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								Library/Homebrew/utils/shebang.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								Library/Homebrew/utils/shebang.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module Utils
 | 
			
		||||
  module Shebang
 | 
			
		||||
    module_function
 | 
			
		||||
 | 
			
		||||
    class RewriteInfo
 | 
			
		||||
      attr_reader :regex, :max_length, :replacement
 | 
			
		||||
 | 
			
		||||
      def initialize(regex, max_length, replacement)
 | 
			
		||||
        @regex = regex
 | 
			
		||||
        @max_length = max_length
 | 
			
		||||
        @replacement = replacement
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def rewrite_shebang(rewrite_info, *paths)
 | 
			
		||||
      paths.each do |f|
 | 
			
		||||
        f = Pathname(f)
 | 
			
		||||
        next unless f.file?
 | 
			
		||||
        next unless rewrite_info.regex.match?(f.read(rewrite_info.max_length))
 | 
			
		||||
 | 
			
		||||
        Utils::Inreplace.inreplace f.to_s, rewrite_info.regex, "#!#{rewrite_info.replacement}"
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user