Pull in precompiled python under cygwin.
authorCheng Zhao <zcbenz@gmail.com>
Mon, 1 Jul 2013 07:21:27 +0000 (15:21 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Mon, 1 Jul 2013 07:21:57 +0000 (15:21 +0800)
script/bootstrap.py

index a2b646f..f0bf121 100755 (executable)
@@ -6,10 +6,13 @@ import os
 import subprocess
 import sys
 
+from lib.util import *
+
 
 SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
 VENDOR_DIR = os.path.join(SOURCE_ROOT, 'vendor')
 BASE_URL = 'https://gh-contractor-zcbenz.s3.amazonaws.com/libchromiumcontent'
+PYTHON_26_URL = 'https://chromium.googlesource.com/chromium/deps/python_26'
 
 
 def main():
@@ -18,6 +21,8 @@ def main():
   args = parse_args()
   update_submodules()
   bootstrap_brightray(args.url)
+  if sys.platform == 'cygwin':
+    update_win32_python()
   update_atom_shell()
   update_npm()
 
@@ -39,22 +44,31 @@ def update_submodules():
                          '--recursive'])
 
 
-def update_npm():
-  subprocess.check_call(['npm', 'install', 'npm', '--silent'])
-
-  npm = os.path.join(SOURCE_ROOT, 'node_modules', '.bin', 'npm')
-  subprocess.check_call([npm, 'install', '--silent'])
-
-
 def bootstrap_brightray(url):
   bootstrap = os.path.join(VENDOR_DIR, 'brightray', 'script', 'bootstrap')
   subprocess.check_call([sys.executable, bootstrap, url])
 
 
+def update_win32_python():
+  with scoped_cwd(VENDOR_DIR):
+    if not os.path.exists('python_26'):
+      subprocess.check_call(['git', 'clone', PYTHON_26_URL])
+    else:
+      with scoped_cwd('python_26'):
+        subprocess.check_call(['git', 'pull', '--rebase'])
+
+
 def update_atom_shell():
   update = os.path.join(SOURCE_ROOT, 'script', 'update.py')
   subprocess.check_call([sys.executable, update])
 
 
+def update_npm():
+  subprocess.check_call(['npm', 'install', 'npm', '--silent'])
+
+  npm = os.path.join(SOURCE_ROOT, 'node_modules', '.bin', 'npm')
+  subprocess.check_call([npm, 'install', '--silent'])
+
+
 if __name__ == '__main__':
   sys.exit(main())