From 8de9baa0f5a0fbbd27d894722d9fb627318f2081 Mon Sep 17 00:00:00 2001 From: Connor Mann Date: Mon, 17 May 2021 11:28:15 -0400 Subject: [PATCH] Add `brew link --HEAD` --- Library/Homebrew/cmd/link.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/cmd/link.rb b/Library/Homebrew/cmd/link.rb index 2952c86e36..13ed3033e9 100644 --- a/Library/Homebrew/cmd/link.rb +++ b/Library/Homebrew/cmd/link.rb @@ -26,6 +26,8 @@ module Homebrew "`brew link --overwrite` without actually linking or deleting any files." switch "-f", "--force", 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 end @@ -40,16 +42,15 @@ module Homebrew 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) if keg.linked? opoo "Already linked: #{keg}" - name_and_flag = if keg_only - "--force #{keg.name}" - else - keg.name - end + name_and_flag = "#{"--HEAD " if head}#{"--force " if keg_only}#{keg.name}" puts <<~EOS To relink: brew unlink #{keg.name} && brew link #{name_and_flag}