Module: Language::Perl::Shebang

Defined in:
language/perl.rb

Overview

Helper module for replacing perl shebangs.

Class Method Summary collapse

Class Method Details

.detected_perl_shebang(formula = self) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'language/perl.rb', line 13

def detected_perl_shebang(formula = self)
  perl_path = if formula.deps.map(&:name).include? "perl"
    Formula["perl"].opt_bin/"perl"
  elsif formula.uses_from_macos_names.include? "perl"
    "/usr/bin/perl#{MacOS.preferred_perl_version}"
  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