parse application source code into modules. replace HTTP query for brew version info
This commit is contained in:
parent
d557ca80bc
commit
3fb675626e
27
Library/Homebrew/utils/livecheck.rb
Normal file
27
Library/Homebrew/utils/livecheck.rb
Normal file
@ -0,0 +1,27 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "open3"
|
||||
|
||||
module Livecheck
|
||||
def livecheck_formula_response(formula_name)
|
||||
puts "- livecheck formula : #{formula_name}"
|
||||
command_args = [
|
||||
"brew",
|
||||
"livecheck",
|
||||
formula_name,
|
||||
"--quiet"
|
||||
]
|
||||
|
||||
response = Open3.capture2e(*command_args)
|
||||
parse_livecheck_response(response)
|
||||
end
|
||||
|
||||
def parse_livecheck_response(response)
|
||||
output = response.first.gsub(' ', '').split(/:|==>|\n/)
|
||||
|
||||
# eg: ["burp", "2.2.18", "2.2.18"]
|
||||
package_name, brew_version, latest_version = output
|
||||
|
||||
{'name' => package_name, 'current_brew_version' => brew_version, 'livecheck_latest_version' => latest_version}
|
||||
end
|
||||
end
|
@ -25,23 +25,50 @@ module RepologyParser
|
||||
puts "\n- Paginating repology api page: #{page_no}"
|
||||
|
||||
outdated_packages = query_repology_api("")
|
||||
last_pacakge_index = outdated_packages.size - 1
|
||||
last_package_index = outdated_packages.size - 1
|
||||
response_size = outdated_packages.size
|
||||
|
||||
while response_size > 1
|
||||
while response_size > 1 do
|
||||
page_no += 1
|
||||
puts "\n- Paginating repology api page: #{page_no}"
|
||||
|
||||
last_package_in_response = outdated_packages.keys[last_pacakge_index]
|
||||
last_package_in_response = outdated_packages.keys[last_package_index]
|
||||
response = query_repology_api("#{last_package_in_response}/")
|
||||
|
||||
response_size = response.size
|
||||
outdated_packages.merge!(response)
|
||||
last_pacakge_index = outdated_packages.size - 1
|
||||
last_package_index = outdated_packages.size - 1
|
||||
end
|
||||
|
||||
puts "\n- #{outdated_packages.size} outdated packages identified by repology"
|
||||
puts "\n- #{outdated_packages.size} outdated packages identified"
|
||||
|
||||
outdated_packages
|
||||
end
|
||||
|
||||
def validate__repology_packages(outdated_repology_packages, brew_formulas)
|
||||
puts "\n---- Verify Outdated Repology Packages as Homebrew Formulae -----"
|
||||
|
||||
packages = {}
|
||||
|
||||
outdated_repology_packages.each do |name, repositories|
|
||||
# identify homebrew repo
|
||||
repology_homebrew_repo = repositories.select do
|
||||
|repo| repo['repo'] == 'homebrew'
|
||||
end.first
|
||||
|
||||
next if repology_homebrew_repo.empty?
|
||||
latest_version = nil
|
||||
|
||||
#identify latest version amongst repology repos
|
||||
repositories.each do |repo|
|
||||
latest_version = repo['version'] if repo['status'] == 'newest'
|
||||
end
|
||||
|
||||
packages[repology_homebrew_repo['srcname']] = {
|
||||
'repology_latest_version' => latest_version,
|
||||
}
|
||||
end
|
||||
# hash of hashes {'openclonk' => {repology_latest_version => 7.0}, ..}
|
||||
packages
|
||||
end
|
||||
end
|
||||
|
36
Library/Homebrew/utils/versions.rb
Normal file
36
Library/Homebrew/utils/versions.rb
Normal file
@ -0,0 +1,36 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "open3"
|
||||
require "formula"
|
||||
|
||||
module Versions
|
||||
def current_formula_version(formula_name)
|
||||
Formula[formula_name].version.to_s.to_f
|
||||
end
|
||||
|
||||
def bump_formula_pr(formula_name, url)
|
||||
command_args = [
|
||||
"brew",
|
||||
"bump-formula-pr",
|
||||
"--no-browse",
|
||||
"--dry-run",
|
||||
formula_name,
|
||||
"--url=#{url}",
|
||||
]
|
||||
|
||||
response = Open3.capture2e(*command_args)
|
||||
parse_formula_bump_response(response)
|
||||
end
|
||||
|
||||
def parse_formula_bump_response(response)
|
||||
response, status = formula_bump_response
|
||||
response
|
||||
end
|
||||
|
||||
def check_for_open_pr(formula_name, download_url)
|
||||
puts "- Checking for open PRs for formula : #{formula_name}"
|
||||
|
||||
response = bump_formula_pr(formula_name, download_url)
|
||||
!response.include? 'Error: These open pull requests may be duplicates'
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user