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 "formula_pin"
|
||||||
require "hardware"
|
require "hardware"
|
||||||
require "utils/bottles"
|
require "utils/bottles"
|
||||||
|
require "utils/shebang"
|
||||||
require "utils/shell"
|
require "utils/shell"
|
||||||
require "build_environment"
|
require "build_environment"
|
||||||
require "build_options"
|
require "build_options"
|
||||||
@ -50,6 +51,7 @@ require "find"
|
|||||||
class Formula
|
class Formula
|
||||||
include FileUtils
|
include FileUtils
|
||||||
include Utils::Inreplace
|
include Utils::Inreplace
|
||||||
|
include Utils::Shebang
|
||||||
include Utils::Shell
|
include Utils::Shell
|
||||||
extend Enumerable
|
extend Enumerable
|
||||||
extend Forwardable
|
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