2020-10-10 14:16:11 +02:00
|
|
|
# typed: true
|
2020-03-26 18:29:21 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Language
|
2020-08-17 18:59:02 +02:00
|
|
|
# Helper functions for Perl formulae.
|
|
|
|
#
|
|
|
|
# @api public
|
2020-03-26 18:29:21 +00:00
|
|
|
module Perl
|
2020-08-17 18:59:02 +02:00
|
|
|
# Helper module for replacing `perl` shebangs.
|
2020-03-26 18:29:21 +00:00
|
|
|
module Shebang
|
|
|
|
module_function
|
|
|
|
|
|
|
|
def detected_perl_shebang(formula = self)
|
|
|
|
perl_path = if formula.uses_from_macos_elements&.include? "perl"
|
|
|
|
"/usr/bin/perl"
|
|
|
|
elsif formula.deps.map(&:name).include? "perl"
|
|
|
|
Formula["perl"].opt_bin/"perl"
|
|
|
|
else
|
|
|
|
raise "Cannot detect Perl shebang: formula does not depend on Perl."
|
|
|
|
end
|
|
|
|
|
|
|
|
Utils::Shebang::RewriteInfo.new(
|
|
|
|
%r{^#! ?/usr/bin/(env )?perl$},
|
|
|
|
20, # the length of "#! /usr/bin/env perl"
|
|
|
|
perl_path,
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|