summaryrefslogtreecommitdiff
path: root/build/appveyor
diff options
context:
space:
mode:
authorNobuaki Sukegawa <nsuke@apache.org>2016-09-28 05:05:02 +0900
committerNobuaki Sukegawa <nsuke@apache.org>2016-09-29 02:44:59 +0900
commit8ccf5a645c8e34e0abb6f31b216dbf77f0ac2a43 (patch)
treed47a9f8ae308c6c8897f0bca4aebb2c11e47cb2e /build/appveyor
parent042ce7e7c894ac99489d2cd1a3d139e8d630bbdb (diff)
downloadthrift-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.py41
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())