From 0ff24f5611f8a30f01ae08d866b5276c020a8665 Mon Sep 17 00:00:00 2001 From: davidovski Date: Wed, 17 Nov 2021 12:20:12 +0000 Subject: added server pinging to determine best mirror to use --- src/verbs/install.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/verbs/install.py') diff --git a/src/verbs/install.py b/src/verbs/install.py index 5883c51..f29142c 100644 --- a/src/verbs/install.py +++ b/src/verbs/install.py @@ -20,7 +20,6 @@ def find_package(query, repos, packages_dir): return checksum, sources, requested_repo return None, [], None - def retrieve_package_info(sources, checksum, package_name, verbose=False, skip_verification=False): for source,url in sources.items(): @@ -40,6 +39,25 @@ def retrieve_package_info(sources, checksum, package_name, print(colors.RED + f"No matching hashes found" + colors.RESET) return {} +def retrieve_package(sources, checksum, package_name, + verbose=False, skip_verification=False): + for source,url in sources.items(): + package_info_url = util.add_path(url, package_name + ".xipkg.info") + status, response = util.curl(package_info_url) + + if status == 200: + info = parse_package_info(response) + if info["CHECKSUM"] == checksum or skip_verification: + return info + else: + if verbose: + print(colors.RED + + f"Checksum verification failed for {package_name} in {source}" + + colors.RESET) + if verbose: + print(colors.RED + f"No matching hashes found" + colors.RESET) + return {} + def parse_package_info(packageinfo): info = {} @@ -49,7 +67,6 @@ def parse_package_info(packageinfo): info[split[0]] = "=".join(split[1:]) return info - def install(args, options, config): sources = config["sources"] repos = config["repos"] -- cgit v1.2.1