brew/Library/Homebrew/unlink.rb

31 lines
885 B
Ruby
Raw Normal View History

2024-08-10 15:48:04 +01:00
# typed: strict
# frozen_string_literal: true
module Homebrew
# Provides helper methods for unlinking formulae and kegs with consistent output.
module Unlink
2024-08-10 15:48:04 +01:00
sig { params(formula: Formula, verbose: T::Boolean).void }
2023-03-07 17:24:20 -08:00
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|
2024-03-07 16:20:20 +00:00
unlink(keg, verbose:)
end
end
2024-08-10 15:48:04 +01:00
sig { params(keg: Keg, dry_run: T::Boolean, verbose: T::Boolean).void }
2023-03-07 17:24:20 -08:00
def self.unlink(keg, dry_run: false, verbose: false)
2024-03-07 16:20:20 +00:00
options = { dry_run:, verbose: }
keg.lock do
print "Unlinking #{keg}... "
puts if verbose
2021-01-26 15:21:24 -05:00
puts "#{keg.unlink(**options)} symlinks removed."
end
end
end
end