Skip to content

Commit

Permalink
Merge pull request #17102 from Homebrew/only-brew-desc-search-needs-e…
Browse files Browse the repository at this point in the history
…val-all

Only `brew desc --search` needs `--eval-all`
  • Loading branch information
MikeMcQuaid committed Apr 18, 2024
2 parents 151e2fa + 69c31d2 commit 3c72da9
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 20 deletions.
38 changes: 19 additions & 19 deletions Library/Homebrew/cmd/desc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,6 @@ class Desc < AbstractCommand

sig { override.void }
def run
if !args.eval_all? && !Homebrew::EnvConfig.eval_all?
raise UsageError, "`brew desc` needs `--eval-all` passed or `HOMEBREW_EVAL_ALL` set!"
end

search_type = if args.search?
:either
elsif args.name?
Expand All @@ -50,25 +46,29 @@ def run
:desc
end

if search_type.blank?
desc = {}
args.named.to_formulae_and_casks.each do |formula_or_cask|
case formula_or_cask
when Formula
desc[formula_or_cask.full_name] = formula_or_cask.desc
when Cask::Cask
description = formula_or_cask.desc.presence || Formatter.warning("[no description]")
desc[formula_or_cask.full_name] = "(#{formula_or_cask.name.join(", ")}) #{description}"
else
raise TypeError, "Unsupported formula_or_cask type: #{formula_or_cask.class}"
end
if search_type.present?
if !args.eval_all? && !Homebrew::EnvConfig.eval_all?
raise UsageError, "`brew desc --search` needs `--eval-all` passed or `HOMEBREW_EVAL_ALL` set!"
end
Descriptions.new(desc).print
else

query = args.named.join(" ")
string_or_regex = Search.query_regexp(query)
Search.search_descriptions(string_or_regex, args, search_type:)
return Search.search_descriptions(string_or_regex, args, search_type:)
end

desc = {}
args.named.to_formulae_and_casks.each do |formula_or_cask|
case formula_or_cask
when Formula
desc[formula_or_cask.full_name] = formula_or_cask.desc
when Cask::Cask
description = formula_or_cask.desc.presence || Formatter.warning("[no description]")
desc[formula_or_cask.full_name] = "(#{formula_or_cask.name.join(", ")}) #{description}"
else
raise TypeError, "Unsupported formula_or_cask type: #{formula_or_cask.class}"
end
end
Descriptions.new(desc).print
end
end
end
Expand Down
18 changes: 17 additions & 1 deletion Library/Homebrew/test/cmd/desc_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,25 @@
it "shows a given Formula's description", :integration_test do
setup_test_formula "testball"

expect { brew "desc", "--eval-all", "testball" }
expect { brew "desc", "testball" }
.to output("testball: Some test\n").to_stdout
.and not_to_output.to_stderr
.and be_a_success
end

it "errors when searching without --eval-all", :integration_test do
setup_test_formula "testball"

expect { brew "desc", "--search", "testball" }
.to output(/`brew desc --search` needs `--eval-all` passed or `HOMEBREW_EVAL_ALL` set!/).to_stderr
.and be_a_failure
end

it "successfully searches with --search --eval-all", :integration_test do
setup_test_formula "testball"

expect { brew "desc", "--search", "--eval-all", "ball" }
.to output(/testball: Some test/).to_stdout
.and not_to_output.to_stderr
end
end

0 comments on commit 3c72da9

Please sign in to comment.