From 5f410162671c1f61538f107f3e45ab45382ff757 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Tue, 4 May 2021 15:59:53 +0100 Subject: [PATCH] Support handling of rewriting shebangs with flags Fixes #11108. --- Library/Homebrew/keg_relocate.rb | 4 ++-- Library/Homebrew/language/perl.rb | 6 +++--- Library/Homebrew/language/python.rb | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/keg_relocate.rb b/Library/Homebrew/keg_relocate.rb index 661752ef58..ce133c8b80 100644 --- a/Library/Homebrew/keg_relocate.rb +++ b/Library/Homebrew/keg_relocate.rb @@ -79,8 +79,8 @@ class Keg end relocation.add_replacement_pair(:library, HOMEBREW_LIBRARY.to_s, LIBRARY_PLACEHOLDER) relocation.add_replacement_pair(:perl, - %r{\A#!(/usr/bin/perl\d\.\d+|#{HOMEBREW_PREFIX}/opt/perl/bin/perl)$}o, - "#!#{PERL_PLACEHOLDER}") + %r{\A#!(?:/usr/bin/perl\d\.\d+|#{HOMEBREW_PREFIX}/opt/perl/bin/perl)( |$)}o, + "#!#{PERL_PLACEHOLDER}\\1") relocation end alias generic_prepare_relocation_to_placeholders prepare_relocation_to_placeholders diff --git a/Library/Homebrew/language/perl.rb b/Library/Homebrew/language/perl.rb index aa3442fe63..bfff1072e4 100644 --- a/Library/Homebrew/language/perl.rb +++ b/Library/Homebrew/language/perl.rb @@ -20,9 +20,9 @@ module Language end Utils::Shebang::RewriteInfo.new( - %r{^#! ?/usr/bin/(env )?perl$}, - 20, # the length of "#! /usr/bin/env perl" - perl_path, + %r{^#! ?/usr/bin/(?:env )?perl( |$)}, + 21, # the length of "#! /usr/bin/env perl " + "#{perl_path}\\1", ) end end diff --git a/Library/Homebrew/language/python.rb b/Library/Homebrew/language/python.rb index c6a0cb0a63..8292e4c967 100644 --- a/Library/Homebrew/language/python.rb +++ b/Library/Homebrew/language/python.rb @@ -96,9 +96,9 @@ module Language # @private def python_shebang_rewrite_info(python_path) Utils::Shebang::RewriteInfo.new( - %r{^#! ?/usr/bin/(env )?python([23](\.\d{1,2})?)?$}, - 28, # the length of "#! /usr/bin/env pythonx.yyy$" - python_path, + %r{^#! ?/usr/bin/(?:env )?python(?:[23](?:\.\d{1,2})?)?( |$)}, + 28, # the length of "#! /usr/bin/env pythonx.yyy " + "#{python_path}\\1", ) end