Refactor bump.rb methods into seperate modules
This commit is contained in:
parent
63b19c3518
commit
5f19a53195
@ -42,85 +42,16 @@ module Homebrew
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
outdated_packages = validate_and_format_packages(outdated_repology_packages)
|
outdated_packages = Repology.validate_and_format_packages(outdated_repology_packages)
|
||||||
display(outdated_packages)
|
display(outdated_packages)
|
||||||
end
|
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)
|
def get_formula_details(formula_name)
|
||||||
Formula[formula_name]
|
Formula[formula_name]
|
||||||
rescue
|
rescue
|
||||||
nil
|
nil
|
||||||
end
|
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)
|
def display(outdated_packages)
|
||||||
puts
|
puts
|
||||||
outdated_packages.each do |formula, package_details|
|
outdated_packages.each do |formula, package_details|
|
||||||
|
|||||||
@ -9,6 +9,7 @@ require "utils/git"
|
|||||||
require "utils/github"
|
require "utils/github"
|
||||||
require "utils/inreplace"
|
require "utils/inreplace"
|
||||||
require "utils/link"
|
require "utils/link"
|
||||||
|
require "utils/livecheck_formula"
|
||||||
require "utils/popen"
|
require "utils/popen"
|
||||||
require "utils/repology"
|
require "utils/repology"
|
||||||
require "utils/svn"
|
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
|
outdated_packages
|
||||||
end
|
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
|
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