diff --git a/Library/Homebrew/dev-cmd/bump.rb b/Library/Homebrew/dev-cmd/bump.rb index d5aa70893d3cd0e00031d0aad32f7ad1bd7a708b..a105008b5ac608b3854f826147ec933ae5fdee6a 100644 --- a/Library/Homebrew/dev-cmd/bump.rb +++ b/Library/Homebrew/dev-cmd/bump.rb @@ -23,9 +23,10 @@ module Homebrew end def bump - bump_args.parse + args = bump_args.parse - requested_formula = Homebrew.args.formula + requested_formula = args.formula + requested_limit = args.limit ? args.limit.to_i : nil requested_formula&.downcase! raise FormulaUnavailableError, requested_formula if requested_formula && !validate_formula(requested_formula) @@ -36,8 +37,12 @@ module Homebrew Repology.parse_api_response end - validated_formulae = Repology.validate_and_format_packages(repology_data) - display(validated_formulae) + if repology_data.blank? + ohai "No Repology data found." + else + validated_formulae = Repology.validate_and_format_packages(repology_data, requested_limit) + display(validated_formulae) + end end def validate_formula(formula_name) @@ -57,7 +62,7 @@ module Homebrew 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 Repology version: #{package_details[:repology_latest_version] || "Not found"}" puts "Latest livecheck version: #{package_details[:livecheck_latest_version] || "Not found"}" puts "Open pull requests: #{package_details[:open_pull_requests] || "None"}" end diff --git a/Library/Homebrew/test/dev-cmd/bump_spec.rb b/Library/Homebrew/test/dev-cmd/bump_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..bc3bacc6cdbe270592c3f8dc2180f3b303ebc165 --- /dev/null +++ b/Library/Homebrew/test/dev-cmd/bump_spec.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +require "cmd/shared_examples/args_parse" + +describe "Homebrew.bump_args" do + it_behaves_like "parseable arguments" +end diff --git a/Library/Homebrew/utils/repology.rb b/Library/Homebrew/utils/repology.rb index 15ab2ca01f27b6777586c93eefcbba74f7d559cc..6686f9b1ac22b6570f2f1635e1f8bbd731b50ad0 100644 --- a/Library/Homebrew/utils/repology.rb +++ b/Library/Homebrew/utils/repology.rb @@ -53,7 +53,7 @@ module Repology outdated_packages end - def validate_and_format_packages(outdated_repology_packages) + def validate_and_format_packages(outdated_repology_packages, limit) packages = {} outdated_repology_packages.each do |_name, repositories| # identify homebrew repo @@ -68,7 +68,7 @@ module Repology package_details = format_package(srcname, latest_version) packages[srcname] = package_details unless package_details.nil? - break if Homebrew.args.limit && packages.size >= Homebrew.args.limit.to_i + break if limit && packages.size >= limit end packages