mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
31 lines
885 B
Ruby
31 lines
885 B
Ruby
# typed: strict
|
|
# frozen_string_literal: true
|
|
|
|
module Homebrew
|
|
# Provides helper methods for unlinking formulae and kegs with consistent output.
|
|
module Unlink
|
|
sig { params(formula: Formula, verbose: T::Boolean).void }
|
|
def self.unlink_versioned_formulae(formula, verbose: false)
|
|
formula.versioned_formulae
|
|
.select(&:keg_only?)
|
|
.select(&:linked?)
|
|
.filter_map(&:any_installed_keg)
|
|
.select(&:directory?)
|
|
.each do |keg|
|
|
unlink(keg, verbose:)
|
|
end
|
|
end
|
|
|
|
sig { params(keg: Keg, dry_run: T::Boolean, verbose: T::Boolean).void }
|
|
def self.unlink(keg, dry_run: false, verbose: false)
|
|
options = { dry_run:, verbose: }
|
|
|
|
keg.lock do
|
|
print "Unlinking #{keg}... "
|
|
puts if verbose
|
|
puts "#{keg.unlink(**options)} symlinks removed."
|
|
end
|
|
end
|
|
end
|
|
end
|