description cache invalid if updated w/o EVAL_ALL

When updating description cache, if eval_all not set, clear cache rather
than leaving it out of date.

This fixes an issue where, if a user sets `--eval-all` on the command
line to run description searches, but HOMEBREW_EVAL_ALL isn't set in the
environment the cache is never updated.
This commit is contained in:
Ryan Rotter 2024-06-30 17:00:35 -04:00
parent 3aeef5aef2
commit e8c71646c1
2 changed files with 24 additions and 4 deletions

View File

@ -68,6 +68,14 @@ class CacheStoreDatabase
db.delete(key)
end
# Deletes all content from the underlying database (if it already exists).
def clear!
return unless created?
dirty!
db.clear
end
# Closes the underlying database (if it is created and open).
def write_if_dirty!
return unless dirty?

View File

@ -41,7 +41,10 @@ class DescriptionCacheStore < CacheStore
# @param report [Report] an update report generated by cmd/update.rb
# @return [nil]
def update_from_report!(report)
return unless Homebrew::EnvConfig.eval_all?
unless Homebrew::EnvConfig.eval_all?
database.clear!
return
end
return populate_if_empty! if database.empty?
return if report.empty?
@ -60,7 +63,10 @@ class DescriptionCacheStore < CacheStore
# @param formula_names [Array] the formulae to update
# @return [nil]
def update_from_formula_names!(formula_names)
return unless Homebrew::EnvConfig.eval_all?
unless Homebrew::EnvConfig.eval_all?
database.clear!
return
end
return populate_if_empty! if database.empty?
formula_names.each do |name|
@ -108,7 +114,10 @@ class CaskDescriptionCacheStore < DescriptionCacheStore
# @param report [Report] an update report generated by cmd/update.rb
# @return [nil]
def update_from_report!(report)
return unless Homebrew::EnvConfig.eval_all?
unless Homebrew::EnvConfig.eval_all?
database.clear!
return
end
return populate_if_empty! if database.empty?
return if report.empty?
@ -124,7 +133,10 @@ class CaskDescriptionCacheStore < DescriptionCacheStore
# @param cask_tokens [Array] the casks to update
# @return [nil]
def update_from_cask_tokens!(cask_tokens)
return unless Homebrew::EnvConfig.eval_all?
unless Homebrew::EnvConfig.eval_all?
database.clear!
return
end
return populate_if_empty! if database.empty?
cask_tokens.each do |token|