Merge pull request #8718 from demopark/master
[platform/framework/web/crosswalk-tizen.git] / script / update-external-binaries.py
1 #!/usr/bin/env python
2
3 import errno
4 import sys
5 import os
6
7 from lib.config import get_target_arch
8 from lib.util import safe_mkdir, rm_rf, extract_zip, tempdir, download
9
10
11 VERSION = 'v1.2.0'
12 SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
13 FRAMEWORKS_URL = 'http://github.com/electron/electron-frameworks/releases' \
14                  '/download/' + VERSION
15
16
17 def main():
18   os.chdir(SOURCE_ROOT)
19   version_file = os.path.join(SOURCE_ROOT, 'external_binaries', '.version')
20
21   if (is_updated(version_file, VERSION)):
22     return
23
24   rm_rf('external_binaries')
25   safe_mkdir('external_binaries')
26
27   if sys.platform == 'darwin':
28     download_and_unzip('Mantle')
29     download_and_unzip('ReactiveCocoa')
30     download_and_unzip('Squirrel')
31   elif sys.platform in ['cygwin', 'win32']:
32     download_and_unzip('directxsdk-' + get_target_arch())
33
34   with open(version_file, 'w') as f:
35     f.write(VERSION)
36
37
38 def is_updated(version_file, version):
39   existing_version = ''
40   try:
41     with open(version_file, 'r') as f:
42       existing_version = f.readline().strip()
43   except IOError as e:
44     if e.errno != errno.ENOENT:
45       raise
46   return existing_version == version
47
48
49 def download_and_unzip(framework):
50   zip_path = download_framework(framework)
51   if zip_path:
52     extract_zip(zip_path, 'external_binaries')
53
54
55 def download_framework(framework):
56   filename = framework + '.zip'
57   url = FRAMEWORKS_URL + '/' + filename
58   download_dir = tempdir(prefix='electron-')
59   path = os.path.join(download_dir, filename)
60
61   download('Download ' + framework, url, path)
62   return path
63
64
65 if __name__ == '__main__':
66   sys.exit(main())