diff --git a/Library/Homebrew/cleaner.rb b/Library/Homebrew/cleaner.rb index 79f2734f185fd..4b38ab91d730f 100644 --- a/Library/Homebrew/cleaner.rb +++ b/Library/Homebrew/cleaner.rb @@ -155,20 +155,25 @@ def clean_dir(directory) sig { void } def rewrite_shebangs + require "language/node" require "language/perl" require "utils/shebang" + rewrites = [Language::Node::Shebang.method(:detected_node_shebang), + Language::Perl::Shebang.method(:detected_perl_shebang)].filter_map do |detector| + detector.call(@formula) + rescue ShebangDetectionError + nil + end + return if rewrites.empty? + basepath = @formula.prefix.realpath basepath.find do |path| Find.prune if @formula.skip_clean? path next if path.directory? || path.symlink? - begin - Utils::Shebang.rewrite_shebang Language::Perl::Shebang.detected_perl_shebang(@formula), path - rescue ShebangDetectionError - break - end + rewrites.each { |rw| Utils::Shebang.rewrite_shebang rw, path } end end