Ship the custom node binary build with atom-shell.
authorCheng Zhao <zcbenz@gmail.com>
Sat, 11 May 2013 13:07:03 +0000 (21:07 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Sat, 11 May 2013 13:07:03 +0000 (21:07 +0800)
This is required by the child_process.fork, which is indeed executing
the node binary to start a script.

The node fork can be found at:
https://github.com/atom/cefode-node/tree/chromium-v8

.gitignore
atom.gyp
script/update
script/update-node [new file with mode: 0755]
vendor/node

index 7494d83..dd34244 100644 (file)
@@ -1,5 +1,6 @@
 .DS_Store
 build/
+node/
 node_modules/
 vendor/
 *.xcodeproj
index a5b1d9f..8064ced 100644 (file)
--- a/atom.gyp
+++ b/atom.gyp
               'files': [
                 'browser/default_app',
               ],
-            }
+            },
+            {
+              # Copy node binary for worker process support.
+              'destination': '<(PRODUCT_DIR)/<(product_name).app/Contents/Resources',
+              'files': [
+                'node/node',
+              ],
+            },
           ],
           'postbuilds': [
             {
index 503fb63..1b0ba46 100755 (executable)
@@ -4,6 +4,8 @@ set -e
 
 cd "$(dirname "$0")/.."
 
+./script/update-node v0.10.5
+
 gyp --depth . atom.gyp \
   -Ivendor/brightray/brightray.gypi \
   -Dtarget_arch=ia32 \
diff --git a/script/update-node b/script/update-node
new file mode 100755 (executable)
index 0000000..54edd32
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+set -e
+
+cd "$(dirname $0)/.."
+
+NODE_VERSION=v0.10.5
+[ -z $1 ] || NODE_VERSION=$1
+
+# Test whether we need update.
+if [ -f "node/node" ] && [[ `node/node --version` == $NODE_VERSION ]] ; then
+  exit 0
+fi
+
+case $OSTYPE in
+  darwin*) NODE_PLATFORM=darwin ;;
+  linux*) NODE_PLATFORM=linux ;;
+  *) echo "Unsupported platform $OSTYPE" && exit 1 ;;
+esac
+
+NODE_DIST_NAME="node-$NODE_VERSION-$NODE_PLATFORM-x86"
+
+# Download node and untar
+NODE_TARBALL_URL="https://gh-contractor-zcbenz.s3.amazonaws.com/node/dist/$NODE_DIST_NAME.tar.gz"
+TARGET_DIR='node'
+[ -d "$TARGET_DIR" ] || mkdir "$TARGET_DIR"
+cd "$TARGET_DIR"
+curl -fsSkL $NODE_TARBALL_URL | tar -zx || exit 1
+
+cp "$NODE_DIST_NAME/bin/node" .
+rm -rf "$NODE_DIST_NAME"
index 5c651db..bb77a4d 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 5c651db8ff28c710bedecd0599ce8a1249ae843f
+Subproject commit bb77a4da8e864bf68672912ab28277e4a5812491