diff options
Diffstat (limited to 'bootstrap.py')
-rwxr-xr-x | bootstrap.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/bootstrap.py b/bootstrap.py index a8bd67cb23..51b81f5e8e 100755 --- a/bootstrap.py +++ b/bootstrap.py @@ -2,8 +2,8 @@ # This script simply downloads waf to the current directory -from __future__ import print_function import os, sys, stat, hashlib, subprocess +from urllib.request import urlopen, URLError WAFRELEASE = "waf-2.0.20" WAFURLS = ["https://waf.io/" + WAFRELEASE, @@ -20,11 +20,6 @@ if "--no-download" in sys.argv[1:]: print("Did not find {} and no download was requested.".format(WAFRELEASE)) sys.exit(1) -try: - from urllib.request import urlopen, URLError -except: - from urllib2 import urlopen, URLError - waf = None for WAFURL in WAFURLS: @@ -32,8 +27,8 @@ for WAFURL in WAFURLS: print("Downloading {}...".format(WAFURL)) waf = urlopen(WAFURL).read() break - except URLError: - print("Download failed.") + except URLError as err: + print("Download failed! ({})".format(err)) if not waf: print("Could not download {}.".format(WAFRELEASE)) @@ -41,6 +36,12 @@ if not waf: sys.exit(1) if SHA256HASH == hashlib.sha256(waf).hexdigest(): + # Upstream waf is not changing the default interpreter during + # 2.0.x line due to compatibility reasons apparently. So manually + # convert it to use python3 (the script works with both). + expected = b"#!/usr/bin/env python\n" + assert waf.startswith(expected) + waf = b"#!/usr/bin/env python3\n" + waf[len(expected):] with open("waf", "wb") as wf: wf.write(waf) |