2020-06-29 10:16:58 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2020-06-29 09:47:19 -05:00
|
|
|
require "cli/parser"
|
|
|
|
|
|
|
|
module Homebrew
|
|
|
|
module_function
|
|
|
|
|
|
|
|
def bump_args
|
|
|
|
Homebrew::CLI::Parser.new do
|
|
|
|
usage_banner <<~EOS
|
2020-07-28 08:42:24 -05:00
|
|
|
`bump` [<options>]
|
2020-07-02 17:06:39 +00:00
|
|
|
|
2020-07-28 09:30:19 -05:00
|
|
|
Display out-of-date brew formulae and the latest version available.
|
|
|
|
Also displays whether a pull request has been opened with the URL.
|
2020-06-29 09:47:19 -05:00
|
|
|
EOS
|
2020-07-28 08:42:24 -05:00
|
|
|
flag "--formula=",
|
|
|
|
description: "Return results for package by name."
|
2020-07-23 11:21:12 -05:00
|
|
|
flag "--limit=",
|
|
|
|
description: "Limit number of package results returned."
|
2020-07-06 03:32:18 +00:00
|
|
|
switch :verbose
|
|
|
|
switch :debug
|
2020-06-29 09:47:19 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def bump
|
|
|
|
bump_args.parse
|
2020-07-01 10:21:57 -05:00
|
|
|
|
2020-07-28 09:30:19 -05:00
|
|
|
requested_formula = Homebrew.args.formula
|
2020-07-28 09:43:20 -05:00
|
|
|
requested_formula&.downcase!
|
2020-07-28 09:30:19 -05:00
|
|
|
|
2020-07-30 01:19:59 +00:00
|
|
|
raise FormulaUnavailableError, requested_formula if requested_formula && !get_formula_details(requested_formula)
|
2020-07-02 17:06:39 +00:00
|
|
|
|
2020-07-28 09:30:19 -05:00
|
|
|
outdated_repology_packages = if requested_formula
|
2020-07-28 09:43:20 -05:00
|
|
|
Repology.single_package_query(requested_formula)
|
|
|
|
else
|
|
|
|
Repology.parse_api_response
|
|
|
|
end
|
2020-07-28 09:30:19 -05:00
|
|
|
|
2020-07-28 12:56:19 -05:00
|
|
|
if requested_formula && outdated_repology_packages.nil?
|
2020-07-29 13:42:35 +00:00
|
|
|
ohai "#{requested_formula} is up-to-date!"
|
2020-07-28 12:56:19 -05:00
|
|
|
puts "Current version: #{get_formula_details(requested_formula).version}"
|
|
|
|
return
|
|
|
|
end
|
|
|
|
|
2020-07-30 22:58:30 +00:00
|
|
|
outdated_packages = Repology.validate_and_format_packages(outdated_repology_packages)
|
2020-07-02 17:06:39 +00:00
|
|
|
display(outdated_packages)
|
|
|
|
end
|
|
|
|
|
2020-07-06 03:32:18 +00:00
|
|
|
def get_formula_details(formula_name)
|
|
|
|
Formula[formula_name]
|
|
|
|
rescue
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
|
2020-07-02 17:06:39 +00:00
|
|
|
def display(outdated_packages)
|
2020-07-22 10:06:54 -05:00
|
|
|
puts
|
2020-07-02 17:06:39 +00:00
|
|
|
outdated_packages.each do |formula, package_details|
|
2020-07-02 12:53:48 -05:00
|
|
|
ohai formula
|
2020-07-29 13:26:10 +00:00
|
|
|
puts "Current formula version: #{package_details[:current_formula_version]}"
|
|
|
|
puts "Latest Repology version: #{package_details[:repology_latest_version]}"
|
2020-07-29 13:26:40 +00:00
|
|
|
puts "Latest livecheck version: #{package_details[:livecheck_latest_version] || "Not found"}"
|
2020-07-30 01:15:37 +00:00
|
|
|
puts "Open pull requests: #{package_details[:open_pull_requests] || "None"}"
|
2020-07-02 17:06:39 +00:00
|
|
|
end
|
2020-06-29 09:47:19 -05:00
|
|
|
end
|
|
|
|
end
|