Add mirror support, include official PUC-Rio Lua mirror URL
This commit is contained in:
parent
1aa8a8a028
commit
03cba28315
38
hererocks.py
38
hererocks.py
@ -22,9 +22,10 @@ import textwrap
|
|||||||
import zipfile
|
import zipfile
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from urllib2 import urlopen
|
from urllib2 import urlopen, URLError
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
from urllib.error import URLError
|
||||||
|
|
||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
try:
|
try:
|
||||||
@ -500,8 +501,8 @@ class Program(object):
|
|||||||
def get_file_name(self):
|
def get_file_name(self):
|
||||||
return self.get_download_name() + (".zip" if self.win32_zip else ".tar.gz")
|
return self.get_download_name() + (".zip" if self.win32_zip else ".tar.gz")
|
||||||
|
|
||||||
def get_download_url(self):
|
def get_download_url(self, base_url):
|
||||||
return self.downloads + "/" + self.get_file_name()
|
return base_url + "/" + self.get_file_name()
|
||||||
|
|
||||||
def fetch(self):
|
def fetch(self):
|
||||||
if self.fetched:
|
if self.fetched:
|
||||||
@ -522,14 +523,21 @@ class Program(object):
|
|||||||
|
|
||||||
archive_name = os.path.join(opts.downloads, self.get_file_name())
|
archive_name = os.path.join(opts.downloads, self.get_file_name())
|
||||||
|
|
||||||
url = self.get_download_url()
|
if opts.downloads and os.path.exists(archive_name):
|
||||||
message = "Fetching {} from {}".format(self.title, url)
|
print("Fetching {} (cached)".format(self.title))
|
||||||
|
|
||||||
if not opts.downloads or not os.path.exists(archive_name):
|
|
||||||
print(message)
|
|
||||||
download(url, archive_name)
|
|
||||||
else:
|
else:
|
||||||
print(message + " (cached)")
|
for base_url in self.downloads:
|
||||||
|
url = self.get_download_url()
|
||||||
|
print("Fetching {} from {}".format(self.title, url))
|
||||||
|
|
||||||
|
try:
|
||||||
|
download(url, archive_name)
|
||||||
|
except URLError as error:
|
||||||
|
print("Download failed: {}".format(str(error.reason)))
|
||||||
|
else:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
print("Verifying SHA256 checksum")
|
print("Verifying SHA256 checksum")
|
||||||
expected_checksum = self.checksums[self.get_file_name()]
|
expected_checksum = self.checksums[self.get_file_name()]
|
||||||
@ -842,7 +850,7 @@ class Patch(object):
|
|||||||
class RioLua(Lua):
|
class RioLua(Lua):
|
||||||
name = "lua"
|
name = "lua"
|
||||||
title = "Lua"
|
title = "Lua"
|
||||||
downloads = "http://www.lua.org/ftp"
|
downloads = ["http://www.lua.org/ftp", "http://webserver2.tecgraf.puc-rio.br/lua/mirror/ftp"]
|
||||||
win32_zip = False
|
win32_zip = False
|
||||||
default_repo = "https://github.com/lua/lua"
|
default_repo = "https://github.com/lua/lua"
|
||||||
versions = [
|
versions = [
|
||||||
@ -1270,7 +1278,7 @@ class RioLua(Lua):
|
|||||||
class LuaJIT(Lua):
|
class LuaJIT(Lua):
|
||||||
name = "LuaJIT"
|
name = "LuaJIT"
|
||||||
title = "LuaJIT"
|
title = "LuaJIT"
|
||||||
downloads = "https://github.com/LuaJIT/LuaJIT/archive"
|
downloads = ["https://github.com/LuaJIT/LuaJIT/archive"]
|
||||||
win32_zip = False
|
win32_zip = False
|
||||||
default_repo = "https://github.com/LuaJIT/LuaJIT"
|
default_repo = "https://github.com/LuaJIT/LuaJIT"
|
||||||
versions = [
|
versions = [
|
||||||
@ -1303,8 +1311,8 @@ class LuaJIT(Lua):
|
|||||||
# v2.0.1 tag is broken, use v2.0.1-fixed.
|
# v2.0.1 tag is broken, use v2.0.1-fixed.
|
||||||
self.fixed_version = "2.0.1-fixed"
|
self.fixed_version = "2.0.1-fixed"
|
||||||
|
|
||||||
def get_download_url(self):
|
def get_download_url(self, base_url):
|
||||||
return self.downloads + "/v" + self.fixed_version + ".tar.gz"
|
return base_url + "/v" + self.fixed_version + ".tar.gz"
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def major_version_from_version():
|
def major_version_from_version():
|
||||||
@ -1399,7 +1407,7 @@ class LuaJIT(Lua):
|
|||||||
class LuaRocks(Program):
|
class LuaRocks(Program):
|
||||||
name = "luarocks"
|
name = "luarocks"
|
||||||
title = "LuaRocks"
|
title = "LuaRocks"
|
||||||
downloads = "http://luarocks.github.io/luarocks/releases"
|
downloads = ["http://luarocks.github.io/luarocks/releases"]
|
||||||
win32_zip = os.name == "nt"
|
win32_zip = os.name == "nt"
|
||||||
default_repo = "https://github.com/luarocks/luarocks"
|
default_repo = "https://github.com/luarocks/luarocks"
|
||||||
versions = [
|
versions = [
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user