diff options
| author | Alyssa Ross | 2016-09-22 13:27:33 +0100 |
|---|---|---|
| committer | Alyssa Ross | 2016-10-25 22:34:34 +0100 |
| commit | 6f0aabe70700654fdd19d1800fa61f4cdea25266 (patch) | |
| tree | 16b58f43e35c8902175221dc41d19f8622b39b91 /Library/Homebrew/keg.rb | |
| parent | 3f3fa4d0f7d5c28598fb7a2495d01efa35c7f7a2 (diff) | |
| download | brew-6f0aabe70700654fdd19d1800fa61f4cdea25266.tar.bz2 | |
uninstall: refuse when dependants still installed
Closes #934.
Diffstat (limited to 'Library/Homebrew/keg.rb')
| -rw-r--r-- | Library/Homebrew/keg.rb | 15 |
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 |
