Refactor bump.rb methods into seperate modules
This commit is contained in:
parent
63b19c3518
commit
5f19a53195
@ -42,85 +42,16 @@ module Homebrew
|
||||
return
|
||||
end
|
||||
|
||||
outdated_packages = validate_and_format_packages(outdated_repology_packages)
|
||||
outdated_packages = Repology.validate_and_format_packages(outdated_repology_packages)
|
||||
display(outdated_packages)
|
||||
end
|
||||
|
||||
def validate_and_format_packages(outdated_repology_packages)
|
||||
packages = {}
|
||||
outdated_repology_packages.each do |_name, repositories|
|
||||
# identify homebrew repo
|
||||
repology_homebrew_repo = repositories.find do |repo|
|
||||
repo["repo"] == "homebrew"
|
||||
end
|
||||
|
||||
next if repology_homebrew_repo.blank?
|
||||
|
||||
latest_version = repositories.find { |repo| repo["status"] == "newest" }["version"]
|
||||
srcname = repology_homebrew_repo["srcname"]
|
||||
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
|
||||
end
|
||||
|
||||
packages
|
||||
end
|
||||
|
||||
def format_package(package_name, latest_version)
|
||||
formula = get_formula_details(package_name)
|
||||
|
||||
return if formula.blank?
|
||||
|
||||
tap_full_name = formula.tap&.full_name
|
||||
current_version = current_formula_version(formula)
|
||||
livecheck_response = livecheck_formula(package_name)
|
||||
pull_requests = GitHub.check_for_duplicate_pull_requests(formula, tap_full_name, latest_version)
|
||||
|
||||
if pull_requests.try(:any?)
|
||||
pull_requests = pull_requests.map { |pr| "#{pr[:title]} (#{Formatter.url(pr[:url])})" }.join(", ")
|
||||
end
|
||||
|
||||
{
|
||||
repology_latest_version: latest_version,
|
||||
current_formula_version: current_version.to_s,
|
||||
livecheck_latest_version: livecheck_response[:livecheck_version],
|
||||
open_pull_requests: pull_requests,
|
||||
}
|
||||
end
|
||||
|
||||
def get_formula_details(formula_name)
|
||||
Formula[formula_name]
|
||||
rescue
|
||||
nil
|
||||
end
|
||||
|
||||
def current_formula_version(formula)
|
||||
formula.version.to_s
|
||||
end
|
||||
|
||||
def livecheck_formula(formula)
|
||||
ohai "Checking livecheck formula: #{formula}" if Homebrew.args.verbose?
|
||||
|
||||
response = Utils.popen_read(HOMEBREW_BREW_FILE, "livecheck", formula, "--quiet").chomp
|
||||
|
||||
parse_livecheck_response(response)
|
||||
end
|
||||
|
||||
def parse_livecheck_response(response)
|
||||
# e.g response => aacgain : 7834 ==> 1.8
|
||||
output = response.delete(" ").split(/:|==>/)
|
||||
|
||||
# e.g. ["openclonk", "7.0", "8.1"]
|
||||
package_name, brew_version, latest_version = output
|
||||
|
||||
{
|
||||
name: package_name,
|
||||
formula_version: brew_version,
|
||||
livecheck_version: latest_version,
|
||||
}
|
||||
end
|
||||
|
||||
def display(outdated_packages)
|
||||
puts
|
||||
outdated_packages.each do |formula, package_details|
|
||||
|
||||
@ -9,6 +9,7 @@ require "utils/git"
|
||||
require "utils/github"
|
||||
require "utils/inreplace"
|
||||
require "utils/link"
|
||||
require "utils/livecheck_formula"
|
||||
require "utils/popen"
|
||||
require "utils/repology"
|
||||
require "utils/svn"
|
||||
|
||||
27
Library/Homebrew/utils/livecheck_formula.rb
Normal file
27
Library/Homebrew/utils/livecheck_formula.rb
Normal file
@ -0,0 +1,27 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module LivecheckFormula
|
||||
module_function
|
||||
|
||||
def init(formula)
|
||||
ohai "Checking livecheck formula: #{formula}" if Homebrew.args.verbose?
|
||||
|
||||
response = Utils.popen_read(HOMEBREW_BREW_FILE, "livecheck", formula, "--quiet").chomp
|
||||
|
||||
parse_livecheck_response(response)
|
||||
end
|
||||
|
||||
def parse_livecheck_response(response)
|
||||
# e.g response => aacgain : 7834 ==> 1.8
|
||||
output = response.delete(" ").split(/:|==>/)
|
||||
|
||||
# e.g. ["openclonk", "7.0", "8.1"]
|
||||
package_name, brew_version, latest_version = output
|
||||
|
||||
{
|
||||
name: package_name,
|
||||
formula_version: brew_version,
|
||||
livecheck_version: latest_version,
|
||||
}
|
||||
end
|
||||
end
|
||||
@ -52,4 +52,48 @@ module Repology
|
||||
|
||||
outdated_packages
|
||||
end
|
||||
|
||||
def validate_and_format_packages(outdated_repology_packages)
|
||||
packages = {}
|
||||
outdated_repology_packages.each do |_name, repositories|
|
||||
# identify homebrew repo
|
||||
repology_homebrew_repo = repositories.find do |repo|
|
||||
repo["repo"] == "homebrew"
|
||||
end
|
||||
|
||||
next if repology_homebrew_repo.blank?
|
||||
|
||||
latest_version = repositories.find { |repo| repo["status"] == "newest" }["version"]
|
||||
srcname = repology_homebrew_repo["srcname"]
|
||||
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
|
||||
end
|
||||
|
||||
packages
|
||||
end
|
||||
|
||||
def format_package(package_name, latest_version)
|
||||
formula = Formula[package_name]
|
||||
|
||||
return if formula.blank?
|
||||
|
||||
tap_full_name = formula.tap&.full_name
|
||||
current_version = formula.version.to_s
|
||||
livecheck_response = LivecheckFormula.init(package_name)
|
||||
pull_requests = GitHub.check_for_duplicate_pull_requests(formula, tap_full_name, latest_version)
|
||||
|
||||
if pull_requests.try(:any?)
|
||||
pull_requests = pull_requests.map { |pr| "#{pr[:title]} (#{Formatter.url(pr[:url])})" }.join(", ")
|
||||
end
|
||||
|
||||
{
|
||||
repology_latest_version: latest_version,
|
||||
current_formula_version: current_version.to_s,
|
||||
livecheck_latest_version: livecheck_response[:livecheck_version],
|
||||
open_pull_requests: pull_requests,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user