@@ -28,6 +28,7 @@ def print_toolchains_checksums(name):
2828 template = """\
2929 cat > "$@" <<'EOF'
3030#!/bin/bash
31+ set -euo pipefail
3132
3233set -o errexit -o nounset -o pipefail
3334
5455
5556def _commands_for_version (* , python_version , metadata ):
5657 lines = []
57- lines += [
58- "cat <<EOB" , # end of block
59- " \" {python_version}\" : {{" .format (python_version = python_version ),
60- " \" url\" : \" {url}\" ," .format (url = metadata ["url" ]),
61- " \" sha256\" : {" ,
62- ]
63-
64- for platform in metadata ["sha256" ].keys ():
65- for release_url in get_release_info (platform , python_version )[1 ]:
66- # Do lines one by one so that the progress is seen better and use cat for ease of quotation
67- lines += [
68- "EOB" ,
69- "cat <<EOB" ,
70- " \" {platform}\" : \" $$({get_sha256})\" ," .format (
71- platform = platform ,
72- get_sha256 = "curl --silent --show-error --location --fail {release_url_sha256}" .format (
73- release_url = release_url ,
74- release_url_sha256 = release_url + ".sha256" ,
75- ),
76- ),
77- ]
78-
58+ first_platform = metadata ["sha256" ].keys ()[0 ]
59+ root , _ , _ = get_release_info (first_platform , python_version )[1 ][0 ].rpartition ("/" )
60+ sha_url = "{}/{}" .format (root , "SHA256SUMS" )
7961 prefix = metadata ["strip_prefix" ]
8062 prefix = render .indent (
8163 render .dict (prefix ) if type (prefix ) == type ({}) else repr (prefix ),
8264 indent = " " * 8 ,
8365 ).lstrip ()
8466
8567 lines += [
68+ "sha256s=$$(curl --silent --show-error --location --fail {})" .format (sha_url ),
69+ "cat <<EOB" ,
70+ " \" {python_version}\" : {{" .format (python_version = python_version ),
71+ " \" url\" : \" {url}\" ," .format (url = metadata ["url" ]),
72+ " \" sha256\" : {" ,
73+ ] + [
74+ " \" {platform}\" : \" $$({get_sha256})\" ," .format (
75+ platform = platform ,
76+ get_sha256 = "echo \" $$sha256s\" | (grep {} || echo ) | awk '{{print $$1}}'" .format (
77+ release_url .rpartition ("/" )[- 1 ],
78+ ),
79+ )
80+ for platform in metadata ["sha256" ].keys ()
81+ for release_url in get_release_info (platform , python_version )[1 ]
82+ ] + [
8683 " }," ,
8784 " \" strip_prefix\" : {strip_prefix}," .format (strip_prefix = prefix ),
8885 " }," ,
0 commit comments