Index: utils.py |
=================================================================== |
deleted file mode 100644 |
--- a/utils.py |
+++ /dev/null |
@@ -1,76 +0,0 @@ |
-# This Source Code is subject to the terms of the Mozilla Public License |
-# version 2.0 (the "License"). You can obtain a copy of the License at |
-# http://mozilla.org/MPL/2.0/. |
- |
-import os |
-import platform |
-import io |
-import zipfile |
- |
-try: |
- from urllib.request import urlopen |
-except ImportError: |
- import urllib |
- import contextlib |
- |
- def urlopen(*args, **kwargs): |
- return contextlib.closing(urllib.urlopen(*args, **kwargs)) |
- |
-JSSHELL_DIR = 'mozilla-esr31' |
-JSSHELL_URL = ('https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly' |
- '/2015/02/2015-02-25-00-22-19-{}' |
- '/jsshell-{{}}.zip'.format(JSSHELL_DIR)) |
- |
-JSSHELL_SUPPORTED_PLATFORMS = { |
- 'Windows': 'win32', |
- 'Linux': { |
- 'i686': 'linux-i686', |
- 'x86_64': 'linux-x86_64' |
- }, |
- 'Darwin': 'mac' |
-} |
- |
- |
-def ensureJSShell(): |
- path = os.environ.get('SPIDERMONKEY_BINARY') |
- if path and os.path.isfile(path): |
- return path |
- |
- baseDir = os.path.dirname(__file__) |
- system = platform.system() |
- |
- try: |
- build = JSSHELL_SUPPORTED_PLATFORMS[system] |
- if isinstance(build, dict): |
- build = build[platform.machine()] |
- except KeyError: |
- raise Exception('Platform {} ({}) not supported by JS shell'.format( |
- system, platform.machine() |
- )) |
- |
- shell_dir = os.path.join(baseDir, JSSHELL_DIR + "-" + build) |
- if not os.path.exists(shell_dir): |
- os.makedirs(shell_dir) |
- if system == 'Windows': |
- path = os.path.join(shell_dir, 'js.exe') |
- else: |
- path = os.path.join(shell_dir, 'js') |
- |
- if os.path.exists(path): |
- return path |
- |
- with urlopen(JSSHELL_URL.format(build)) as response: |
- data = response.read() |
- |
- with zipfile.ZipFile(io.BytesIO(data)) as archive: |
- archive.extractall(shell_dir) |
- |
- if not os.path.exists(path): |
- raise Exception('Downloaded package didn\'t contain JS shell executable') |
- |
- try: |
- os.chmod(path, 0o700) |
- except: |
- pass |
- |
- return path |