mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
34 lines
935 B
Ruby
34 lines
935 B
Ruby
# typed: true
|
|
# frozen_string_literal: true
|
|
|
|
module Language
|
|
# Helper functions for Perl formulae.
|
|
#
|
|
# @api public
|
|
module Perl
|
|
# Helper module for replacing `perl` shebangs.
|
|
module Shebang
|
|
module_function
|
|
|
|
def detected_perl_shebang(formula = self)
|
|
perl_deps = formula.declared_deps.select { |dep| dep.name == "perl" }
|
|
perl_path = if perl_deps.present?
|
|
if perl_deps.any? { |dep| !dep.uses_from_macos? || !dep.use_macos_install? }
|
|
Formula["perl"].opt_bin/"perl"
|
|
else
|
|
"/usr/bin/perl#{MacOS.preferred_perl_version}"
|
|
end
|
|
else
|
|
raise ShebangDetectionError.new("Perl", "formula does not depend on Perl")
|
|
end
|
|
|
|
Utils::Shebang::RewriteInfo.new(
|
|
%r{^#! ?/usr/bin/(?:env )?perl( |$)},
|
|
21, # the length of "#! /usr/bin/env perl "
|
|
"#{perl_path}\\1",
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|