diff options
author | Nobuaki Sukegawa <nsuke@apache.org> | 2016-09-28 05:05:02 +0900 |
---|---|---|
committer | Nobuaki Sukegawa <nsuke@apache.org> | 2016-09-29 02:44:59 +0900 |
commit | 8ccf5a645c8e34e0abb6f31b216dbf77f0ac2a43 (patch) | |
tree | d47a9f8ae308c6c8897f0bca4aebb2c11e47cb2e /build/appveyor | |
parent | 042ce7e7c894ac99489d2cd1a3d139e8d630bbdb (diff) | |
download | thrift-8ccf5a645c8e34e0abb6f31b216dbf77f0ac2a43.tar.gz |
THRIFT-3934 Automatically resolve OpenSSL binary version on Windows CI
Diffstat (limited to 'build/appveyor')
-rw-r--r-- | build/appveyor/download_openssl.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/build/appveyor/download_openssl.py b/build/appveyor/download_openssl.py new file mode 100644 index 000000000..fcb72e5fc --- /dev/null +++ b/build/appveyor/download_openssl.py @@ -0,0 +1,41 @@ +import urllib.request +import sys + +OUT = 'Win64OpenSSL.exe' + +URL_STR = 'https://slproweb.com/download/Win64OpenSSL-%s.exe' + +VERSION_MAJOR = 1 +VERSION_MINOR = 0 +VERSION_PATCH = 2 +VERSION_SUFFIX = 'j' +VERSION_STR = '%d_%d_%d%s' + +TRY_COUNT = 4 + + +def main(): + for patch in range(VERSION_PATCH, TRY_COUNT): + for suffix in range(TRY_COUNT): + if patch == VERSION_PATCH: + s = VERSION_SUFFIX + else: + s = 'a' + s = chr(ord(s) + suffix) + ver = VERSION_STR % (VERSION_MAJOR, VERSION_MINOR, patch, s) + url = URL_STR % ver + try: + with urllib.request.urlopen(url) as res: + if res.getcode() == 200: + with open(OUT, 'wb') as out: + out.write(res.read()) + print('successfully downloaded from ' + url) + return 0 + except urllib.error.HTTPError: + pass + print('failed to download from ' + url, file=sys.stderr) + print('could not download openssl', file=sys.stderr) + return 1 + +if __name__ == '__main__': + sys.exit(main()) |