diff options
Diffstat (limited to 'Library/Homebrew/compat/requirements')
| -rw-r--r-- | Library/Homebrew/compat/requirements/language_module_requirement.rb | 63 | ||||
| -rw-r--r-- | Library/Homebrew/compat/requirements/tex_requirement.rb | 20 |
2 files changed, 83 insertions, 0 deletions
diff --git a/Library/Homebrew/compat/requirements/language_module_requirement.rb b/Library/Homebrew/compat/requirements/language_module_requirement.rb new file mode 100644 index 000000000..5ddce7a66 --- /dev/null +++ b/Library/Homebrew/compat/requirements/language_module_requirement.rb @@ -0,0 +1,63 @@ +require "requirement" + +class LanguageModuleRequirement < Requirement + fatal true + + def initialize(language, module_name, import_name = nil) + @language = language + @module_name = module_name + @import_name = import_name || module_name + super([language, module_name, import_name]) + end + + satisfy(build_env: false) { quiet_system(*the_test) } + + def message + s = <<~EOS + Unsatisfied dependency: #{@module_name} + Homebrew does not provide special #{@language.to_s.capitalize} dependencies; install with: + `#{command_line} #{@module_name}` + EOS + + unless [:python, :perl, :ruby].include? @language + s += <<~EOS + You may need to: `brew install #{@language}` + + EOS + end + + s + end + + def the_test + case @language + when :lua + ["/usr/bin/env", "luarocks-5.2", "show", @import_name.to_s] + when :lua51 + ["/usr/bin/env", "luarocks-5.1", "show", @import_name.to_s] + when :perl + ["/usr/bin/env", "perl", "-e", "use #{@import_name}"] + when :python + ["/usr/bin/env", "python", "-c", "import #{@import_name}"] + when :python3 + ["/usr/bin/env", "python3", "-c", "import #{@import_name}"] + when :ruby + ["/usr/bin/env", "ruby", "-rubygems", "-e", "require '#{@import_name}'"] + end + end + + def command_line + case @language + when :lua then "luarocks-5.2 install" + when :lua51 then "luarocks-5.1 install" + when :perl then "cpan -i" + when :python then "pip install" + when :python3 then "pip3 install" + when :ruby then "gem install" + end + end + + def display_s + "#{@module_name} (#{@language} module)" + end +end diff --git a/Library/Homebrew/compat/requirements/tex_requirement.rb b/Library/Homebrew/compat/requirements/tex_requirement.rb new file mode 100644 index 000000000..cb26a8477 --- /dev/null +++ b/Library/Homebrew/compat/requirements/tex_requirement.rb @@ -0,0 +1,20 @@ +require "requirement" + +class TeXRequirement < Requirement + fatal true + cask "mactex" + download "https://www.tug.org/mactex/" + + satisfy { which("tex") || which("latex") } + + def message + s = <<~EOS + A LaTeX distribution is required for Homebrew to install this formula. + + Make sure that "/usr/texbin", or the location you installed it to, is in + your PATH before proceeding. + EOS + s += super + s + end +end |
