OLD | NEW |
| (Empty) |
1 # Copyright 2011 Google Inc. All Rights Reserved. | |
2 | |
3 import os | |
4 import platform | |
5 import shutil | |
6 import stat | |
7 import sys | |
8 | |
9 HOME = os.path.dirname(os.path.realpath(__file__)) | |
10 HOME = os.path.join(HOME, os.pardir, os.pardir) | |
11 | |
12 FROGSH_FALLBACK = """#!/bin/sh | |
13 echo -en "\033[31mERROR\033[0m: Building frogsh in 'debug' mode requires " | |
14 echo "building the dart" | |
15 echo "runtime in 'release' mode. Retry building frogsh as follows:" | |
16 echo " > rm $0" | |
17 echo " > ./tools/build.py -m release runtime" | |
18 echo " > ./tools/build.py -m debug frogsh" | |
19 exit 1 | |
20 """ | |
21 | |
22 sys.path.append(HOME) | |
23 import frog | |
24 | |
25 def main(args): | |
26 product_dir = args[1] | |
27 js_out = os.path.join(product_dir, 'frog', 'bin', 'frogsh') | |
28 vm = os.path.join(product_dir, 'dart') | |
29 id = platform.system() | |
30 if id == 'Windows' or id == 'Microsoft': | |
31 vm = vm + '.exe' | |
32 shutil.copy(os.path.join(HOME, 'scripts', 'bootstrap', 'frogsh.bat'), | |
33 js_out + '.bat') | |
34 frog_args = ['frog.py', '--vm=' + vm, | |
35 '--js_cmd=node --crankshaft', | |
36 '--', | |
37 '--out=' + js_out, 'minfrog.dart'] | |
38 | |
39 # TODO(ngeoffray): Compile frogsh without checks integrated. | |
40 # if js_out.find('Release') != -1: | |
41 exit_code = frog.main(frog_args) | |
42 if exit_code: | |
43 if js_out.find('Release') != -1: | |
44 return exit_code | |
45 else: | |
46 with open(js_out, 'w') as f: | |
47 f.write(FROGSH_FALLBACK) | |
48 | |
49 os.chmod(js_out, stat.S_IXUSR | stat.S_IXGRP | stat.S_IRUSR | | |
50 stat.S_IRGRP | stat.S_IWUSR) | |
51 return 0 | |
52 | |
53 | |
54 if __name__ == '__main__': | |
55 sys.exit(main(sys.argv)) | |
OLD | NEW |