diff --git a/Library/Homebrew/dev-cmd/bump.rb b/Library/Homebrew/dev-cmd/bump.rb index 9de09e24e6..d5aa70893d 100644 --- a/Library/Homebrew/dev-cmd/bump.rb +++ b/Library/Homebrew/dev-cmd/bump.rb @@ -28,34 +28,34 @@ module Homebrew requested_formula = Homebrew.args.formula requested_formula&.downcase! - raise FormulaUnavailableError, requested_formula if requested_formula && !get_formula_details(requested_formula) + raise FormulaUnavailableError, requested_formula if requested_formula && !validate_formula(requested_formula) - outdated_repology_packages = if requested_formula + repology_data = if requested_formula Repology.single_package_query(requested_formula) else Repology.parse_api_response end - if requested_formula && outdated_repology_packages.nil? - ohai "#{requested_formula} is up-to-date!" - puts "Current version: #{get_formula_details(requested_formula).version}" - return - end - - outdated_packages = Repology.validate_and_format_packages(outdated_repology_packages) - display(outdated_packages) + validated_formulae = Repology.validate_and_format_packages(repology_data) + display(validated_formulae) end - def get_formula_details(formula_name) + def validate_formula(formula_name) Formula[formula_name] rescue nil end - def display(outdated_packages) + def up_to_date?(package) + package[:current_formula_version] == package[:repology_latest_version] && + package[:current_formula_version] == package[:livecheck_latest_version] + end + + def display(formulae) puts - outdated_packages.each do |formula, package_details| - ohai formula + formulae.each do |formula, package_details| + title = (up_to_date?(package_details) ? formula + " is up to date!" : formula).to_s + ohai title puts "Current formula version: #{package_details[:current_formula_version]}" puts "Latest Repology version: #{package_details[:repology_latest_version]}" puts "Latest livecheck version: #{package_details[:livecheck_latest_version] || "Not found"}" diff --git a/Library/Homebrew/utils/repology.rb b/Library/Homebrew/utils/repology.rb index c5d1b9a9aa..c40b7ab378 100644 --- a/Library/Homebrew/utils/repology.rb +++ b/Library/Homebrew/utils/repology.rb @@ -21,11 +21,11 @@ module Repology output, _errors, _status = curl_output(url.to_s) data = JSON.parse(output) - outdated_homebrew = data.select do |repo| - repo["repo"] == "homebrew" && repo["status"] == "outdated" + homebrew = data.select do |repo| + repo["repo"] == "homebrew" end - outdated_homebrew.empty? ? nil : { name: data } + homebrew.empty? ? nil : { name: data } end def parse_api_response @@ -75,7 +75,7 @@ module Repology end def format_package(package_name, latest_version) - formula = Formula[package_name] + formula = formula_data(package_name) return if formula.blank? @@ -95,4 +95,10 @@ module Repology open_pull_requests: pull_requests, } end + + def formula_data(package_name) + Formula[package_name] + rescue + nil + end end