7 from lib.config import get_target_arch
8 from lib.util import safe_mkdir, rm_rf, extract_zip, tempdir, download
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
19 version_file = os.path.join(SOURCE_ROOT, 'external_binaries', '.version')
21 if (is_updated(version_file, VERSION)):
24 rm_rf('external_binaries')
25 safe_mkdir('external_binaries')
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())
34 with open(version_file, 'w') as f:
38 def is_updated(version_file, version):
41 with open(version_file, 'r') as f:
42 existing_version = f.readline().strip()
44 if e.errno != errno.ENOENT:
46 return existing_version == version
49 def download_and_unzip(framework):
50 zip_path = download_framework(framework)
52 extract_zip(zip_path, 'external_binaries')
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)
61 download('Download ' + framework, url, path)
65 if __name__ == '__main__':