Merge pull request #8147 from Rylan12/bump-formula-pr-pypi-version
bump-formula-pr: handle pypi url version changes
This commit is contained in:
commit
8e370b35fa
@ -183,6 +183,7 @@ module Homebrew
|
|||||||
elsif !new_url && !new_version
|
elsif !new_url && !new_version
|
||||||
odie "#{formula}: no --url= or --version= argument specified!"
|
odie "#{formula}: no --url= or --version= argument specified!"
|
||||||
else
|
else
|
||||||
|
new_url ||= PyPI.update_pypi_url(old_url, new_version)
|
||||||
new_url ||= old_url.gsub(old_version, new_version)
|
new_url ||= old_url.gsub(old_version, new_version)
|
||||||
if new_url == old_url
|
if new_url == old_url
|
||||||
odie <<~EOS
|
odie <<~EOS
|
||||||
|
|||||||
@ -7,6 +7,20 @@ module PyPI
|
|||||||
|
|
||||||
@pipgrip_installed = nil
|
@pipgrip_installed = nil
|
||||||
|
|
||||||
|
def url_to_pypi_package_name(url)
|
||||||
|
return unless url.start_with? PYTHONHOSTED_URL_PREFIX
|
||||||
|
|
||||||
|
File.basename(url).match(/^(.+)-[a-z\d.]+$/)[1]
|
||||||
|
end
|
||||||
|
|
||||||
|
def update_pypi_url(url, version)
|
||||||
|
package = url_to_pypi_package_name url
|
||||||
|
return if package.nil?
|
||||||
|
|
||||||
|
_, url = get_pypi_info(package, version)
|
||||||
|
url
|
||||||
|
end
|
||||||
|
|
||||||
# Get name, url, and version for a given pypi package
|
# Get name, url, and version for a given pypi package
|
||||||
def get_pypi_info(package, version)
|
def get_pypi_info(package, version)
|
||||||
metadata_url = "https://pypi.org/pypi/#{package}/#{version}/json"
|
metadata_url = "https://pypi.org/pypi/#{package}/#{version}/json"
|
||||||
@ -32,7 +46,7 @@ module PyPI
|
|||||||
|
|
||||||
# PyPI package name isn't always the same as the formula name. Try to infer from the URL.
|
# PyPI package name isn't always the same as the formula name. Try to infer from the URL.
|
||||||
pypi_name = if formula.stable.url.start_with?(PYTHONHOSTED_URL_PREFIX)
|
pypi_name = if formula.stable.url.start_with?(PYTHONHOSTED_URL_PREFIX)
|
||||||
File.basename(formula.stable.url).match(/^(.+)-[a-z\d.]+$/)[1]
|
url_to_pypi_package_name formula.stable.url
|
||||||
else
|
else
|
||||||
formula.name
|
formula.name
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user