Mercurial > hg
changeset 41909:1e8fb6522fee
packaging: move DOWNLOADS dict to hgpackaging.downloads
We'll want to keep state in sync between multiple packaging tools.
It makes sense to share a central data structure defining downloads.
We also change the function to return the downloads entry so
callers don't have to access the global DOWNLOADS in the new
location.
Differential Revision: https://phab.mercurial-scm.org/D6085
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 07 Mar 2019 10:20:37 -0800 |
parents | c2237fe1359e |
children | 1440dd6164f2 |
files | contrib/packaging/hgpackaging/downloads.py contrib/packaging/inno/build.py |
diffstat | 2 files changed, 38 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/packaging/hgpackaging/downloads.py Thu Mar 07 15:42:32 2019 -0800 +++ b/contrib/packaging/hgpackaging/downloads.py Thu Mar 07 10:20:37 2019 -0800 @@ -13,6 +13,33 @@ import urllib.request +DOWNLOADS = { + 'gettext': { + 'url': 'https://versaweb.dl.sourceforge.net/project/gnuwin32/gettext/0.14.4/gettext-0.14.4-bin.zip', + 'size': 1606131, + 'sha256': '60b9ef26bc5cceef036f0424e542106cf158352b2677f43a01affd6d82a1d641', + 'version': '0.14.4', + }, + 'gettext-dep': { + 'url': 'https://versaweb.dl.sourceforge.net/project/gnuwin32/gettext/0.14.4/gettext-0.14.4-dep.zip', + 'size': 715086, + 'sha256': '411f94974492fd2ecf52590cb05b1023530aec67e64154a88b1e4ebcd9c28588', + }, + 'py2exe': { + 'url': 'https://versaweb.dl.sourceforge.net/project/py2exe/py2exe/0.6.9/py2exe-0.6.9.zip', + 'size': 149687, + 'sha256': '6bd383312e7d33eef2e43a5f236f9445e4f3e0f6b16333c6f183ed445c44ddbd', + 'version': '0.6.9', + }, + 'virtualenv': { + 'url': 'https://files.pythonhosted.org/packages/37/db/89d6b043b22052109da35416abc3c397655e4bd3cff031446ba02b9654fa/virtualenv-16.4.3.tar.gz', + 'size': 3713208, + 'sha256': '984d7e607b0a5d1329425dd8845bd971b957424b5ba664729fab51ab8c11bc39', + 'version': '16.4.3', + }, +} + + def hash_path(p: pathlib.Path): h = hashlib.sha256() @@ -105,7 +132,9 @@ print('successfully downloaded %s' % url) -def download_entry(entry: dict, dest_path: pathlib.Path, local_name=None) -> pathlib.Path: +def download_entry(name: dict, dest_path: pathlib.Path, local_name=None) -> pathlib.Path: + entry = DOWNLOADS[name] + url = entry['url'] local_name = local_name or url[url.rindex('/') + 1:] @@ -113,4 +142,4 @@ local_path = dest_path / local_name download_to_path(url, local_path, entry['size'], entry['sha256']) - return local_path + return local_path, entry
--- a/contrib/packaging/inno/build.py Thu Mar 07 15:42:32 2019 -0800 +++ b/contrib/packaging/inno/build.py Thu Mar 07 10:20:37 2019 -0800 @@ -19,33 +19,6 @@ import tempfile -DOWNLOADS = { - 'gettext': { - 'url': 'https://versaweb.dl.sourceforge.net/project/gnuwin32/gettext/0.14.4/gettext-0.14.4-bin.zip', - 'size': 1606131, - 'sha256': '60b9ef26bc5cceef036f0424e542106cf158352b2677f43a01affd6d82a1d641', - 'version': '0.14.4', - }, - 'gettext-dep': { - 'url': 'https://versaweb.dl.sourceforge.net/project/gnuwin32/gettext/0.14.4/gettext-0.14.4-dep.zip', - 'size': 715086, - 'sha256': '411f94974492fd2ecf52590cb05b1023530aec67e64154a88b1e4ebcd9c28588', - }, - 'py2exe': { - 'url': 'https://versaweb.dl.sourceforge.net/project/py2exe/py2exe/0.6.9/py2exe-0.6.9.zip', - 'size': 149687, - 'sha256': '6bd383312e7d33eef2e43a5f236f9445e4f3e0f6b16333c6f183ed445c44ddbd', - 'version': '0.6.9', - }, - 'virtualenv': { - 'url': 'https://files.pythonhosted.org/packages/37/db/89d6b043b22052109da35416abc3c397655e4bd3cff031446ba02b9654fa/virtualenv-16.4.3.tar.gz', - 'size': 3713208, - 'sha256': '984d7e607b0a5d1329425dd8845bd971b957424b5ba664729fab51ab8c11bc39', - 'version': '16.4.3', - }, -} - - PRINT_PYTHON_INFO = ''' import platform, sys; print("%s:%d" % (platform.architecture()[0], sys.version_info[0])) '''.strip() @@ -128,15 +101,15 @@ build_dir.mkdir(exist_ok=True) - gettext_pkg = download_entry(DOWNLOADS['gettext'], build_dir) - gettext_dep_pkg = download_entry(DOWNLOADS['gettext-dep'], build_dir) - virtualenv_pkg = download_entry(DOWNLOADS['virtualenv'], build_dir) - py2exe_pkg = download_entry(DOWNLOADS['py2exe'], build_dir) + gettext_pkg, gettext_entry = download_entry('gettext', build_dir) + gettext_dep_pkg = download_entry('gettext-dep', build_dir)[0] + virtualenv_pkg, virtualenv_entry = download_entry('virtualenv', build_dir) + py2exe_pkg, py2exe_entry = download_entry('py2exe', build_dir) venv_path = build_dir / ('venv-inno-%s' % ('x64' if vc_x64 else 'x86')) gettext_root = build_dir / ( - 'gettext-win-%s' % DOWNLOADS['gettext']['version']) + 'gettext-win-%s' % gettext_entry['version']) if not gettext_root.exists(): extract_zip_to_directory(gettext_pkg, gettext_root) @@ -150,9 +123,9 @@ extract_zip_to_directory(py2exe_pkg, td) virtualenv_src_path = td / ('virtualenv-%s' % - DOWNLOADS['virtualenv']['version']) + virtualenv_entry['version']) py2exe_source_path = td / ('py2exe-%s' % - DOWNLOADS['py2exe']['version']) + py2exe_entry['version']) virtualenv_py = virtualenv_src_path / 'virtualenv.py'