Add brew link --HEAD

This commit is contained in:
Connor Mann 2021-05-17 11:28:15 -04:00
parent 1810ff9722
commit 8de9baa0f5

View File

@ -26,6 +26,8 @@ module Homebrew
"`brew link --overwrite` without actually linking or deleting any files." "`brew link --overwrite` without actually linking or deleting any files."
switch "-f", "--force", switch "-f", "--force",
description: "Allow keg-only formulae to be linked." description: "Allow keg-only formulae to be linked."
switch "--HEAD",
description: "If it is installed, link the HEAD version."
named_args :installed_formula, min: 1 named_args :installed_formula, min: 1
end end
@ -40,16 +42,15 @@ module Homebrew
verbose: args.verbose?, verbose: args.verbose?,
} }
args.named.to_kegs.each do |keg| args.named.to_formulae_and_casks(only: :formula, method: :kegs).freeze.each do |keg|
head = keg.version.head?
next unless args.HEAD? == head
keg_only = Formulary.keg_only?(keg.rack) keg_only = Formulary.keg_only?(keg.rack)
if keg.linked? if keg.linked?
opoo "Already linked: #{keg}" opoo "Already linked: #{keg}"
name_and_flag = if keg_only name_and_flag = "#{"--HEAD " if head}#{"--force " if keg_only}#{keg.name}"
"--force #{keg.name}"
else
keg.name
end
puts <<~EOS puts <<~EOS
To relink: To relink:
brew unlink #{keg.name} && brew link #{name_and_flag} brew unlink #{keg.name} && brew link #{name_and_flag}