Left: | ||
Right: |
OLD | NEW |
---|---|
1 # coding: utf-8 | 1 # coding: utf-8 |
2 | 2 |
3 # This Source Code is subject to the terms of the Mozilla Public License | 3 # This Source Code is subject to the terms of the Mozilla Public License |
4 # version 2.0 (the "License"). You can obtain a copy of the License at | 4 # version 2.0 (the "License"). You can obtain a copy of the License at |
5 # http://mozilla.org/MPL/2.0/. | 5 # http://mozilla.org/MPL/2.0/. |
6 | 6 |
7 import os | 7 import os |
8 import platform | 8 import platform |
9 from StringIO import StringIO | 9 from StringIO import StringIO |
10 import shutil | |
11 import subprocess | |
10 import sys | 12 import sys |
11 import urllib | 13 import urllib |
12 import zipfile | 14 import zipfile |
13 | 15 |
14 def ensureJSShell(): | 16 def ensureJSShell(): |
15 baseDir = os.path.dirname(__file__) | 17 baseDir = os.path.dirname(__file__) |
16 shell_dir = os.path.join(baseDir, 'mozilla') | 18 shell_dir = os.path.join(baseDir, 'mozilla') |
19 | |
17 if not os.path.exists(shell_dir): | 20 if not os.path.exists(shell_dir): |
18 os.makedirs(shell_dir) | 21 os.makedirs(shell_dir) |
19 if sys.platform == 'win32': | 22 if sys.platform == 'win32': |
20 path = os.path.join(shell_dir, 'js.exe') | 23 path = os.path.join(shell_dir, 'js.exe') |
21 else: | 24 else: |
22 path = os.path.join(shell_dir, 'js') | 25 path = os.path.join(shell_dir, 'js') |
26 | |
23 if os.path.exists(path): | 27 if os.path.exists(path): |
24 return path | 28 # Return the path if jsshell is present and its version is correct |
29 try: | |
30 version = [s for s in subprocess.check_output([path, "--help"]).split("\n" ) | |
Sebastian Noack
2015/11/18 19:53:37
This can be simplified:
m = re.search(r"^Versio
kzar
2015/11/19 10:56:41
Done.
| |
31 if s.startswith("Version")][0].split()[1] | |
32 except (IndexError, subprocess.CalledProcessError): | |
33 pass | |
34 else: | |
35 if version == "JavaScript-C31.5.0esrpre": | |
sergei
2015/11/18 15:30:06
Nit: I don't know the convention for buildtools bu
sergei
2015/11/18 15:30:06
Nit: In addition it seems better to show some warn
kzar
2015/11/18 15:40:49
Well I would have separated the version string fro
sergei
2015/11/18 15:50:18
I have missed it, in this case it's totally fine f
| |
36 return path | |
37 # Otherwise remove the old / faulty version, we'll re-download | |
38 shutil.rmtree(shell_dir) | |
39 os.makedirs(shell_dir) | |
25 | 40 |
26 supported_platforms = { | 41 supported_platforms = { |
27 'win32': 'win32', | 42 'win32': 'win32', |
28 'linux2': { | 43 'linux2': { |
29 'i686': 'linux-i686', | 44 'i686': 'linux-i686', |
30 'x86_64': 'linux-x86_64' | 45 'x86_64': 'linux-x86_64' |
31 }, | 46 }, |
32 'darwin': 'mac', | 47 'darwin': 'mac', |
33 } | 48 } |
34 try: | 49 try: |
(...skipping 13 matching lines...) Expand all Loading... | |
48 | 63 |
49 if not os.path.exists(path): | 64 if not os.path.exists(path): |
50 raise Exception('Downloaded package didn\'t contain JS shell executable') | 65 raise Exception('Downloaded package didn\'t contain JS shell executable') |
51 | 66 |
52 try: | 67 try: |
53 os.chmod(path, 0700) | 68 os.chmod(path, 0700) |
54 except: | 69 except: |
55 pass | 70 pass |
56 | 71 |
57 return path | 72 return path |
OLD | NEW |