aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/keg.rb
diff options
context:
space:
mode:
authorAlyssa Ross2016-09-22 13:27:33 +0100
committerAlyssa Ross2016-10-25 22:34:34 +0100
commit6f0aabe70700654fdd19d1800fa61f4cdea25266 (patch)
tree16b58f43e35c8902175221dc41d19f8622b39b91 /Library/Homebrew/keg.rb
parent3f3fa4d0f7d5c28598fb7a2495d01efa35c7f7a2 (diff)
downloadbrew-6f0aabe70700654fdd19d1800fa61f4cdea25266.tar.bz2
uninstall: refuse when dependants still installed
Closes #934.
Diffstat (limited to 'Library/Homebrew/keg.rb')
-rw-r--r--Library/Homebrew/keg.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index d2c9e12e8..0f58d688c 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -292,6 +292,21 @@ class Keg
PkgVersion.parse(path.basename.to_s)
end
+ def formula
+ Formulary.from_keg(self)
+ end
+
+ def installed_dependants
+ Formula.installed.flat_map(&:installed_kegs).select do |keg|
+ Tab.for_keg(keg).runtime_dependencies.any? do |dep|
+ # Resolve formula rather than directly comparing names
+ # in case of conflicts between formulae from different taps.
+ dep_formula = Formulary.factory(dep["full_name"])
+ dep_formula == formula && dep["version"] == version.to_s
+ end
+ end
+ end
+
def find(*args, &block)
path.find(*args, &block)
end