From d0e2d126a1969c6cf3d975576108a8da2c618254 Mon Sep 17 00:00:00 2001
From: Xu Cheng <xucheng@me.com>
Date: Mon, 2 Feb 2015 22:53:52 +0800
Subject: [PATCH] audit: catch empty installations

Closes Homebrew/homebrew#36794.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
---
 Library/Homebrew/cmd/audit.rb | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb
index 8c874944e9..4d0d7cb2f7 100644
--- a/Library/Homebrew/cmd/audit.rb
+++ b/Library/Homebrew/cmd/audit.rb
@@ -668,6 +668,24 @@ class FormulaAuditor
     end
   end
 
+  def audit_prefix_has_contents
+    return unless formula.prefix.directory?
+
+    Pathname.glob("#{formula.prefix}/**/*") do |file|
+      next if file.directory?
+      basename = file.basename.to_s
+      next if Metafiles.copy?(basename)
+      next if %w[.DS_Store INSTALL_RECEIPT.json].include?(basename)
+      return
+    end
+
+    problem <<-EOS.undent
+      The installation seems to be empty. Please ensure the prefix
+      is set correctly and expected files are installed.
+      The prefix configure/make argument may be case-sensitive.
+    EOS
+  end
+
   def audit_conditional_dep(dep, condition, line)
     quoted_dep = quote_dep(dep)
     dep = Regexp.escape(dep.to_s)
@@ -700,6 +718,7 @@ class FormulaAuditor
     audit_text
     text.without_patch.split("\n").each_with_index { |line, lineno| audit_line(line, lineno+1) }
     audit_installed
+    audit_prefix_has_contents
   end
 
   private
-- 
GitLab