aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorBob W. Hogg2017-02-20 09:42:43 -0800
committerBob W. Hogg2017-04-15 21:20:09 -0700
commit608d72a35fc437a0cf3e8da53729e479cde0be3d (patch)
tree3f7534ed8fb65da220b7a6a227f7d27d53b0f678 /Library/Homebrew/extend
parent02f0189335907805d422c817462674081f48ab60 (diff)
downloadbrew-608d72a35fc437a0cf3e8da53729e479cde0be3d.tar.bz2
OsxfuseRequirement: Port to Linux
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb39
-rw-r--r--Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb34
-rw-r--r--Library/Homebrew/extend/os/requirements/osxfuse_requirement.rb7
3 files changed, 80 insertions, 0 deletions
diff --git a/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb b/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb
new file mode 100644
index 000000000..3fd847bc4
--- /dev/null
+++ b/Library/Homebrew/extend/os/linux/requirements/osxfuse_requirement.rb
@@ -0,0 +1,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.undent
+ 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
diff --git a/Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb b/Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb
new file mode 100644
index 000000000..8c898a272
--- /dev/null
+++ b/Library/Homebrew/extend/os/mac/requirements/osxfuse_requirement.rb
@@ -0,0 +1,34 @@
+require "requirement"
+
+class OsxfuseRequirement < Requirement
+ cask "osxfuse"
+ download "https://osxfuse.github.io/"
+
+ satisfy(build_env: false) { self.class.binary_osxfuse_installed? }
+
+ def self.binary_osxfuse_installed?
+ File.exist?("/usr/local/include/osxfuse/fuse.h") &&
+ !File.symlink?("/usr/local/include/osxfuse")
+ end
+
+ env do
+ ENV.append_path "PKG_CONFIG_PATH", HOMEBREW_LIBRARY/"Homebrew/os/mac/pkgconfig/fuse"
+
+ unless HOMEBREW_PREFIX.to_s == "/usr/local"
+ ENV.append_path "HOMEBREW_LIBRARY_PATHS", "/usr/local/lib"
+ ENV.append_path "HOMEBREW_INCLUDE_PATHS", "/usr/local/include/osxfuse"
+ end
+ end
+end
+
+class NonBinaryOsxfuseRequirement < Requirement
+ fatal true
+ satisfy(build_env: false) { HOMEBREW_PREFIX.to_s != "/usr/local" || !OsxfuseRequirement.binary_osxfuse_installed? }
+
+ def message
+ <<-EOS.undent
+ osxfuse is already installed from the binary distribution and
+ conflicts with this formula.
+ EOS
+ end
+end
diff --git a/Library/Homebrew/extend/os/requirements/osxfuse_requirement.rb b/Library/Homebrew/extend/os/requirements/osxfuse_requirement.rb
new file mode 100644
index 000000000..5f56d48c4
--- /dev/null
+++ b/Library/Homebrew/extend/os/requirements/osxfuse_requirement.rb
@@ -0,0 +1,7 @@
+require "requirements/osxfuse_requirement"
+
+if OS.mac?
+ require "extend/os/mac/requirements/osxfuse_requirement"
+elsif OS.linux?
+ require "extend/os/linux/requirements/osxfuse_requirement"
+end