aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb
blob: 3553ada7426d7fcdd98f3bb4febb733f32a726a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require "requirement"

class OsxfuseRequirement < Requirement
  download "https://github.com/libfuse/libfuse"

  satisfy(build_env: false) do
    next true if libfuse_formula_exists? && Formula["libfuse"].installed?
    includedirs = %w[
      /usr/include
      /usr/local/include
    ]
    next true if (includedirs.map do |dir|
      File.exist? "#{dir}/fuse.h"
    end).any?
    false
  end

  def message
    msg = "libfuse is required to install this formula.\n"
    if libfuse_formula_exists?
      msg + <<~EOS
        Run "brew install libfuse" to install it.
      EOS
    else
      msg + super
    end
  end

  private

  def libfuse_formula_exists?
    begin
      Formula["libfuse"]
    rescue FormulaUnavailableError
      return false
    end
    true
  end
end