2023-03-07 17:24:20 -08:00
|
|
|
# typed: true
|
2020-11-02 11:20:09 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Homebrew
|
|
|
|
# Provides helper methods for unlinking formulae and kegs with consistent output.
|
|
|
|
module Unlink
|
2023-03-07 17:24:20 -08:00
|
|
|
def self.unlink_versioned_formulae(formula, verbose: false)
|
2020-11-02 11:20:09 +00:00
|
|
|
formula.versioned_formulae
|
2020-11-16 13:21:23 +00:00
|
|
|
.select(&:keg_only?)
|
2020-11-02 11:20:09 +00:00
|
|
|
.select(&:linked?)
|
|
|
|
.map(&:any_installed_keg)
|
|
|
|
.compact
|
|
|
|
.select(&:directory?)
|
|
|
|
.each do |keg|
|
|
|
|
unlink(keg, verbose: verbose)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2023-03-07 17:24:20 -08:00
|
|
|
def self.unlink(keg, dry_run: false, verbose: false)
|
2020-11-02 11:20:09 +00:00
|
|
|
options = { dry_run: dry_run, verbose: verbose }
|
|
|
|
|
|
|
|
keg.lock do
|
|
|
|
print "Unlinking #{keg}... "
|
|
|
|
puts if verbose
|
2021-01-26 15:21:24 -05:00
|
|
|
puts "#{keg.unlink(**options)} symlinks removed."
|
2020-11-02 11:20:09 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|