diff --git a/index.js b/index.js
index b030f32b39..6adb0184c5 100644
--- a/index.js
+++ b/index.js
@@ -47,7 +47,7 @@ var start = function (callback) {
console.log('MongoDB: ' + mongoPort);
console.log('webPort: ' + webPort);
child_process.exec('kill $(ps aux -e | grep PURPOSE=KITEMATIC | awk \'{print $2}\') && rm ' + path.join(dataPath, 'mongod.lock'), function (error, stdout, stderr) {
- var mongoChild = child_process.spawn(path.join(process.cwd(), 'resources', 'mongod'), ['--bind_ip', '127.0.0.1', '--dbpath', dataPath, '--port', mongoPort, '--unixSocketPrefix', dataPath], {
+ var mongoChild = child_process.spawn(path.join(__dirname, 'resources', 'mongod'), ['--bind_ip', '127.0.0.1', '--dbpath', dataPath, '--port', mongoPort, '--unixSocketPrefix', dataPath], {
env: {
PURPOSE: 'KITEMATIC'
}
@@ -65,29 +65,16 @@ var start = function (callback) {
console.log('Starting node child...');
var rootURL = 'http://localhost:' + webPort;
var user_env = process.env;
- user_env.ROOT_URL = rootURL;
- user_env.PORT = webPort;
- user_env.BIND_IP = '127.0.0.1';
- user_env.DB_PATH = dataPath;
- user_env.MONGO_URL = 'mongodb://localhost:' + mongoPort + '/meteor';
- user_env.METEOR_SETTINGS = fs.readFileSync(path.join(process.cwd(), 'resources', 'settings.json'), 'utf8');
- var nodeChild = child_process.spawn(path.join(process.cwd(), 'resources', 'node'), ['./bundle/main.js'], {
- env: user_env
- });
-
- var opened = false;
- nodeChild.stdout.setEncoding('utf8');
- nodeChild.stdout.on('data', function (data) {
- console.log(data);
- if (data.indexOf('Kitematic started.') !== -1) {
- if (!opened) {
- opened = true;
- } else {
- return;
- }
- callback(rootURL, nodeChild, mongoChild);
- }
- });
+ process.env.ROOT_URL = rootURL;
+ process.env.PORT = webPort;
+ process.env.BIND_IP = '127.0.0.1';
+ process.env.DB_PATH = dataPath;
+ process.env.MONGO_URL = 'mongodb://localhost:' + mongoPort + '/meteor';
+ process.env.METEOR_SETTINGS = fs.readFileSync(path.join(__dirname, 'resources', 'settings.json'), 'utf8');
+ process.env.DIR = __dirname;
+ process.env.NODE_ENV = 'production';
+ process.env.NODE_PATH = path.join(__dirname, 'node_modules');
+ require('./bundle/main.js');
}
});
});
@@ -128,5 +115,7 @@ app.on('ready', function() {
// and load the index.html of the app.
mainWindow.loadUrl(url);
mainWindow.show();
+ mainWindow.focus();
});
});
+
diff --git a/kitematic.icns b/kitematic.icns
new file mode 100644
index 0000000000..8f8fdaac95
Binary files /dev/null and b/kitematic.icns differ
diff --git a/meteor/client/lib/docker.js b/meteor/client/lib/docker.js
index 4759ab0a53..feb5d44ebd 100644
--- a/meteor/client/lib/docker.js
+++ b/meteor/client/lib/docker.js
@@ -7,7 +7,7 @@ Docker = {};
Docker.DOCKER_HOST = '192.168.60.103';
Docker.DEFAULT_IMAGES_FILENAME = 'base-images-0.0.2.tar.gz';
-Docker.DEFAULT_IMAGES_CHECKSUM = '67e7c7562991a4208c90007461ec14bc184a52ad6048e6bed3e8a8c2b306cee7'; // Sha256 Checksum
+Docker.DEFAULT_IMAGES_CHECKSUM = 'a3517ac21034a1969d9ff15e3c41b1e2f1aa83c67b16a8bd0bc378ffefaf573b'; // Sha256 Checksum
Docker.client = function () {
return new Dockerode({host: Docker.DOCKER_HOST, port: '2375'});
diff --git a/meteor/client/lib/installer.js b/meteor/client/lib/installer.js
index aa20d8bc52..aeeebd177f 100644
--- a/meteor/client/lib/installer.js
+++ b/meteor/client/lib/installer.js
@@ -88,7 +88,9 @@ Installer.steps = [
callback('Boot2Docker SSH key doesn\'t exist. Fix by deleting the existing Boot2Docker VM and re-run the installer. This usually occurs because an old version of Boot2Docker is installed.');
} else {
Boot2Docker.stop(function(err) {
- callback();
+ Boot2Docker.upgrade(function (err) {
+ callback(err);
+ });
});
}
}
diff --git a/meteor/client/lib/router.js b/meteor/client/lib/router.js
index ad5f20fb0f..dac40de9da 100755
--- a/meteor/client/lib/router.js
+++ b/meteor/client/lib/router.js
@@ -13,14 +13,14 @@ Router.configure({
SetupController = RouteController.extend({
layoutTemplate: 'setup_layout',
waitOn: function () {
- return [Meteor.subscribe('installs')];
+ return [Meteor.subscribe('installs'), Meteor.subscribe('settings')];
}
});
DashboardController = RouteController.extend({
layoutTemplate: 'dashboard_layout',
waitOn: function () {
- return [Meteor.subscribe('apps'), Meteor.subscribe('images'), Meteor.subscribe('installs')];
+ return [Meteor.subscribe('apps'), Meteor.subscribe('images'), Meteor.subscribe('installs'), Meteor.subscribe('settings')];
}
});
@@ -50,6 +50,11 @@ Router.map(function () {
controller: 'SetupController'
});
+ this.route('setup_finish', {
+ path: '/setup/finish',
+ controller: 'SetupController'
+ });
+
this.route('setup', {
path: '/',
controller: 'SetupController',
@@ -58,12 +63,11 @@ Router.map(function () {
if (!Installer.isUpToDate()) {
if (!Installs.findOne()) {
console.log('No installs detected, running installer again.');
- this.redirect('/setup/intro');
} else {
// There's an install but it's lower than the current version, re-run as an 'update'.
Session.set('isUpdating', true);
- this.redirect('/setup/intro');
}
+ this.redirect('/setup/intro');
} else {
this.redirect('/apps');
}
diff --git a/meteor/client/lib/util.js b/meteor/client/lib/util.js
index 29fcbf8b8c..f66d8a3e16 100755
--- a/meteor/client/lib/util.js
+++ b/meteor/client/lib/util.js
@@ -1,7 +1,8 @@
var path = require('path');
var fs = require('fs');
-var wget = require('wget');
var nodeCrypto = require('crypto');
+var request = require('request');
+var progress = require('request-progress');
Util = {};
@@ -10,15 +11,7 @@ Util.getHomePath = function () {
};
Util.getBinDir = function () {
- if (process.env.NODE_ENV === 'development') {
- return path.join(path.join(process.env.PWD, '..'), 'resources');
- } else {
- if (Meteor.isClient) {
- return path.join(process.cwd(), 'resources');
- } else {
- return path.join(process.cwd(), '../../../resources');
- }
- }
+ return path.join(process.env.DIR, 'resources');
};
Util.getResourceDir = function () {
@@ -97,22 +90,16 @@ Util.openTerminal = function (command) {
Util.downloadFile = function (url, filename, checksum, callback, progressCallback) {
var doDownload = function () {
- var percent = 0;
- var interval = setInterval(function () {
- progressCallback(percent);
- }, 250);
- var download = wget.download(url, filename);
- download.on('error', function (err) {
- console.log(err);
- clearInterval(interval);
- });
- download.on('end', function (output) {
- console.log(output);
- callback();
- clearInterval(interval);
- });
- download.on('progress', function (progress) {
- percent = Math.round(progress * 100.0);
+ progress(request(url), {
+ throttle: 250,
+ }).on('progress', function (state) {
+ progressCallback(state.percent);
+ }).on('error', function (err) {
+ callback(err);
+ }).pipe(fs.createWriteStream(filename)).on('error', function (err) {
+ callback(err);
+ }).on('close', function (err) {
+ callback(err);
});
};
diff --git a/meteor/client/lib/virtualbox.js b/meteor/client/lib/virtualbox.js
index ee172fb1bb..de70fe6c74 100644
--- a/meteor/client/lib/virtualbox.js
+++ b/meteor/client/lib/virtualbox.js
@@ -1,7 +1,6 @@
var fs = require('fs');
var exec = require('exec');
var path = require('path');
-var crypto = require('crypto');
VirtualBox = {};
diff --git a/meteor/client/stylesheets/setup.import.less b/meteor/client/stylesheets/setup.import.less
index 232640052e..a520c3a160 100644
--- a/meteor/client/stylesheets/setup.import.less
+++ b/meteor/client/stylesheets/setup.import.less
@@ -40,6 +40,25 @@
margin-top: 60px;
}
+ .install-finish {
+ -webkit-app-region: no-drag;
+ margin-top: 80px;
+ p {
+ margin-top: 0;
+ font-size: 13px;
+ }
+ }
+
+ .install-diagonistics {
+ -webkit-app-region: no-drag;
+ label {
+ text-align: left;
+ }
+ margin: 0 auto;
+ max-width: 300px;
+ margin-top: 50px;
+ }
+
.install-continue {
-webkit-app-region: no-drag;
margin-top: 140px;
diff --git a/meteor/client/views/dashboard/layouts/dashboard-apps-layout.js b/meteor/client/views/dashboard/layouts/dashboard-apps-layout.js
index 46d5cfb567..8cb8e72c8a 100644
--- a/meteor/client/views/dashboard/layouts/dashboard-apps-layout.js
+++ b/meteor/client/views/dashboard/layouts/dashboard-apps-layout.js
@@ -1,5 +1,3 @@
-var path = require('path');
-
Template.dashboard_apps_layout.rendered = function () {
Meteor.setInterval(function () {
$('.header .icons a').tooltip();
@@ -26,7 +24,7 @@ Template.dashboard_apps_layout.events({
AppUtil.logs(this._id);
},
'click .btn-terminal': function () {
- var cmd = Boot2Docker.command() + ' ssh -t "sudo docker-enter ' + app.docker.Id + '"';
+ var cmd = Boot2Docker.command() + ' ssh -t "sudo docker-enter ' + this.docker.Id + '"';
Util.openTerminal(cmd);
},
'click .btn-restart': function () {
diff --git a/meteor/client/views/dashboard/settings/dashboard-settings.html b/meteor/client/views/dashboard/settings/dashboard-settings.html
index 9796d42e91..67cc58fb9e 100644
--- a/meteor/client/views/dashboard/settings/dashboard-settings.html
+++ b/meteor/client/views/dashboard/settings/dashboard-settings.html
@@ -41,14 +41,14 @@
-
Usage Analytics
-
Send usage analytics to help us improve the developer experience. No sensitive data will be tracked. We really appreciate the help.
+
Usage Diagnostics
+
Send anonymized usage diagnostics to help us improve Kitematic.
diff --git a/meteor/client/views/dashboard/settings/dashboard-settings.js b/meteor/client/views/dashboard/settings/dashboard-settings.js
index 2919d189ca..2028f2edd6 100644
--- a/meteor/client/views/dashboard/settings/dashboard-settings.js
+++ b/meteor/client/views/dashboard/settings/dashboard-settings.js
@@ -22,16 +22,16 @@ Template.dashboard_settings.events({
});
},
'click .btn-usage-analytics-on': function () {
- var install = Installs.findOne({});
- Installs.update(install._id, {
+ var settings = Settings.findOne();
+ Settings.update(settings._id, {
$set: {
tracking: true
}
});
},
'click .btn-usage-analytics-off': function () {
- var install = Installs.findOne({});
- Installs.update(install._id, {
+ var settings = Settings.findOne();
+ Settings.update(settings._id, {
$set: {
tracking: false
}
@@ -40,8 +40,8 @@ Template.dashboard_settings.events({
});
Template.dashboard_settings.helpers({
- install: function () {
- return Installs.findOne({});
+ settings: function () {
+ return Settings.findOne({});
}
});
diff --git a/meteor/client/views/dashboard/setup/setup-finish.html b/meteor/client/views/dashboard/setup/setup-finish.html
new file mode 100644
index 0000000000..de5f103ff0
--- /dev/null
+++ b/meteor/client/views/dashboard/setup/setup-finish.html
@@ -0,0 +1,21 @@
+
+ Installation Complete
+
+
+

+
+
+
+
+
+
+
+
+
diff --git a/meteor/client/views/dashboard/setup/setup-finish.js b/meteor/client/views/dashboard/setup/setup-finish.js
new file mode 100644
index 0000000000..7f4a53c81e
--- /dev/null
+++ b/meteor/client/views/dashboard/setup/setup-finish.js
@@ -0,0 +1,20 @@
+Template.setup_finish.events({
+ 'click .finish-button': function (e) {
+ var enableDiagnostics = $('.install-diagonistics input').attr('checked') ? true : false;
+ Installs.insert({version: Installer.CURRENT_VERSION});
+ var settings = Settings.findOne();
+ if (!settings) {
+ Settings.insert({tracking: enableDiagnostics});
+ } else {
+ settings.update(settings._id, {
+ $set: {
+ tracking: true
+ }
+ });
+ }
+ Router.go('dashboard_apps');
+ e.preventDefault();
+ e.stopPropagation();
+ return false;
+ }
+});
diff --git a/meteor/client/views/dashboard/setup/setup-install.html b/meteor/client/views/dashboard/setup/setup-install.html
index bb76f77e74..9f16050b26 100644
--- a/meteor/client/views/dashboard/setup/setup-install.html
+++ b/meteor/client/views/dashboard/setup/setup-install.html
@@ -1,4 +1,11 @@
+ {{#if isUpdating}}
+ Updating
+ This may take a few minutes.
+ {{else}}
+ Installing
+ This may take a few minutes.
+ {{/if}}
{{#each steps}}
diff --git a/meteor/client/views/dashboard/setup/setup-install.js b/meteor/client/views/dashboard/setup/setup-install.js
index d080e2e12f..b4026b8351 100644
--- a/meteor/client/views/dashboard/setup/setup-install.js
+++ b/meteor/client/views/dashboard/setup/setup-install.js
@@ -7,8 +7,7 @@ Template.setup_install.rendered = function() {
console.log('Setup failed.');
console.log(err);
} else {
- Installs.insert({version: Installer.CURRENT_VERSION});
- Router.go('dashboard_apps');
+ Router.go('setup_finish');
}
});
}
diff --git a/meteor/client/views/dashboard/setup/setup-intro.html b/meteor/client/views/dashboard/setup/setup-intro.html
index 8b031a0e7d..2df945a90b 100644
--- a/meteor/client/views/dashboard/setup/setup-intro.html
+++ b/meteor/client/views/dashboard/setup/setup-intro.html
@@ -1,4 +1,11 @@
+ {{#if isUpdating}}
+ Welcome Back
+ Kitematic needs to update itself to continue.
+ {{else}}
+ Welcome to Kitematic
+ This will set up everything needed to run Kitematic on your Mac.
+ {{/if}}

diff --git a/meteor/client/views/dashboard/setup/setup-intro.js b/meteor/client/views/dashboard/setup/setup-intro.js
index 3beac39c13..035945b7ec 100644
--- a/meteor/client/views/dashboard/setup/setup-intro.js
+++ b/meteor/client/views/dashboard/setup/setup-intro.js
@@ -1,6 +1,5 @@
Template.setup_intro.events({
'click .continue-button': function (e) {
- console.log('here');
Router.go('setup_install');
e.preventDefault();
e.stopPropagation();
diff --git a/meteor/client/views/dashboard/setup/setup-layout.html b/meteor/client/views/dashboard/setup/setup-layout.html
index ce3765beb4..de1596d8c9 100644
--- a/meteor/client/views/dashboard/setup/setup-layout.html
+++ b/meteor/client/views/dashboard/setup/setup-layout.html
@@ -1,13 +1,6 @@
{{setTitle}}
- {{#if isUpdating}}
-
Welcome Back
-
Kitematic needs to update itself to continue.
- {{else}}
-
Welcome to Kitematic
-
This will set up everything needed to run Kitematic on your Mac.
- {{/if}}
{{> yield}}
diff --git a/meteor/collections/settings.js b/meteor/collections/settings.js
new file mode 100644
index 0000000000..bd0947c88a
--- /dev/null
+++ b/meteor/collections/settings.js
@@ -0,0 +1,13 @@
+Settings = new Meteor.Collection('settings');
+
+Settings.allow({
+ 'update': function () {
+ return true;
+ },
+ 'insert': function () {
+ return true;
+ },
+ 'remove': function () {
+ return true;
+ }
+});
diff --git a/meteor/public/favicon.png b/meteor/public/favicon.png
deleted file mode 100755
index 5bded7cab3..0000000000
Binary files a/meteor/public/favicon.png and /dev/null differ
diff --git a/meteor/public/install_finished.png b/meteor/public/install_finished.png
new file mode 100644
index 0000000000..b3c6556fd5
Binary files /dev/null and b/meteor/public/install_finished.png differ
diff --git a/meteor/public/install_finished@2x.png b/meteor/public/install_finished@2x.png
new file mode 100644
index 0000000000..98ed8f90d2
Binary files /dev/null and b/meteor/public/install_finished@2x.png differ
diff --git a/meteor/server/publications.js b/meteor/server/publications.js
index 6e3540fc61..e7421afa64 100755
--- a/meteor/server/publications.js
+++ b/meteor/server/publications.js
@@ -9,3 +9,7 @@ Meteor.publish('images', function () {
Meteor.publish('installs', function () {
return Installs.find({});
});
+
+Meteor.publish('settings', function () {
+ return Settings.find({});
+});
diff --git a/package.json b/package.json
index 59b8d52df1..ceee3bae5b 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"dockerode": "2.0.3",
"tar": "0.1.20",
"ansi-to-html": "0.2.0",
- "wget": "0.0.1"
+ "request": "2.42.0",
+ "request-progress": "0.3.1"
}
}
diff --git a/script/dist.sh b/script/dist.sh
index 28a0b33213..7ebdc878dd 100755
--- a/script/dist.sh
+++ b/script/dist.sh
@@ -6,6 +6,8 @@ source $DIR/colors.sh
BASE=$DIR/..
NPM="$BASE/cache/node/bin/npm"
+NODE="$BASE/cache/node/bin/node"
+VERSION=$($NODE -pe 'JSON.parse(process.argv[1]).version' "$(cat package.json)")
pushd $BASE/meteor
@@ -28,51 +30,55 @@ popd
pushd $BASE
-rm -rf dist/osx/Kitematic.app
-rm -rf dist/osx/Kitematic.zip
+rm -rf dist/osx
mkdir -p dist/osx/
-cecho "-----> Creating Kitematic.app..." $blue
+DIST_APP=Kitematic.app
+
+cecho "-----> Creating $DIST_APP..." $blue
find cache/atom-shell -name "debug\.log" -print0 | xargs -0 rm -rf
cp -R cache/atom-shell/Atom.app dist/osx/
-mv dist/osx/Atom.app dist/osx/Kitematic.app
-mkdir -p dist/osx/Kitematic.app/Contents/Resources/app
+mv dist/osx/Atom.app dist/osx/$DIST_APP
+mkdir -p dist/osx/$DIST_APP/Contents/Resources/app
-cecho "-----> Copying meteor bundle into Kitematic.app..." $blue
-cp -R bundle dist/osx/Kitematic.app/Contents/Resources/app/
+cecho "-----> Copying meteor bundle into $DIST_APP..." $blue
+mv bundle dist/osx/$DIST_APP/Contents/Resources/app/
-cecho "-----> Copying node-webkit app into Kitematic.app..." $blue
-cp index.js dist/osx/Kitematic.app/Contents/Resources/app/
-cp package.json dist/osx/Kitematic.app/Contents/Resources/app/
-cp -R node_modules dist/osx/Kitematic.app/Contents/Resources/app/
+cecho "-----> Copying node-webkit app into $DIST_APP..." $blue
+cp index.js dist/osx/$DIST_APP/Contents/Resources/app/
+cp package.json dist/osx/$DIST_APP/Contents/Resources/app/
+cp -R node_modules dist/osx/$DIST_APP/Contents/Resources/app/
-cecho "-----> Copying binary files to Kitematic.app" $blue
-mkdir -p dist/osx/Kitematic.app/Contents/Resources/app/resources
-cp -v resources/* dist/osx/Kitematic.app/Contents/Resources/app/resources/ || :
+cecho "-----> Copying binary files to $DIST_APP" $blue
+mkdir -p dist/osx/$DIST_APP/Contents/Resources/app/resources
+cp -v resources/* dist/osx/$DIST_APP/Contents/Resources/app/resources/ || :
-chmod +x dist/osx/Kitematic.app/Contents/Resources/app/resources/$BOOT2DOCKER_CLI_FILE
-chmod +x dist/osx/Kitematic.app/Contents/Resources/app/resources/$COCOASUDO_FILE
-chmod +x dist/osx/Kitematic.app/Contents/Resources/app/resources/install
-chmod +x dist/osx/Kitematic.app/Contents/Resources/app/resources/terminal
-chmod +x dist/osx/Kitematic.app/Contents/Resources/app/resources/unison
-chmod +x dist/osx/Kitematic.app/Contents/Resources/app/resources/node
+cecho "-----> Copying icon to $DIST_APP" $blue
+cp kitematic.icns dist/osx/$DIST_APP/Contents/Resources/atom.icns
+
+chmod +x dist/osx/$DIST_APP/Contents/Resources/app/resources/$BOOT2DOCKER_CLI_FILE
+chmod +x dist/osx/$DIST_APP/Contents/Resources/app/resources/$COCOASUDO_FILE
+chmod +x dist/osx/$DIST_APP/Contents/Resources/app/resources/install
+chmod +x dist/osx/$DIST_APP/Contents/Resources/app/resources/terminal
+chmod +x dist/osx/$DIST_APP/Contents/Resources/app/resources/unison
+chmod +x dist/osx/$DIST_APP/Contents/Resources/app/resources/node
+
+cecho "-----> Updating Info.plist version to $VERSION" $blue
+/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $VERSION" $BASE/dist/osx/$DIST_APP/Contents/Info.plist
+/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName Kitematic" $BASE/dist/osx/$DIST_APP/Contents/Info.plist
if [ -f $DIR/sign.sh ]; then
cecho "-----> Signing app file...." $blue
- $DIR/sign.sh $BASE/dist/osx/Kitematic.app
+ $DIR/sign.sh $BASE/dist/osx/$DIST_APP
fi
pushd dist/osx
cecho "-----> Creating disributable zip file...." $blue
- ditto -c -k --sequesterRsrc --keepParent Kitematic.app Kitematic.zip
+ ditto -c -k --sequesterRsrc --keepParent $DIST_APP Kitematic-$VERSION.zip
popd
-VERSION=$(node -pe 'JSON.parse(process.argv[1]).version' "$(cat package.json)")
-cecho "Updating Info.plist version to $VERSION"
-/usr/libexec/PlistBuddy -c "Set :CFBundleVersion 0.3.0" $BASE/dist/osx/Kitematic.app/Contents/Info.plist
-
cecho "Done." $green
-cecho "Kitematic app available at dist/osx/Kitematic.app" $green
+cecho "Kitematic app available at dist/osx/$DIST_APP" $green
cecho "Kitematic zip distribution available at dist/osx/Kitematic.zip" $green
popd
diff --git a/script/run.sh b/script/run.sh
index f3a9607b64..cecdce21f3 100755
--- a/script/run.sh
+++ b/script/run.sh
@@ -3,9 +3,12 @@
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BASE=$DIR/..
+source $BASE/script/setup.sh
+
export ROOT_URL=https://localhost:3000
export DOCKER_HOST=http://192.168.59.103
export DOCKER_PORT=2375
+export DIR=$BASE
cd $BASE/meteor
exec 3< <(meteor --settings $BASE/meteor/settings_dev.json)
diff --git a/script/setup.sh b/script/setup.sh
index eb4b13daf8..f93730f3a0 100755
--- a/script/setup.sh
+++ b/script/setup.sh
@@ -15,6 +15,16 @@ BOOT2DOCKER_CLI_VERSION=1.2.0
BOOT2DOCKER_CLI_VERSION_FILE=boot2docker-$BOOT2DOCKER_CLI_VERSION
BOOT2DOCKER_CLI_FILE=boot2docker
+ATOM_SHELL_VERSION=0.16.2
+ATOM_SHELL_FILE=atom-shell-v$ATOM_SHELL_VERSION-darwin-x64.zip
+
+if [ ! -f $ATOM_SHELL_FILE ]; then
+ cecho "-----> Downloading Boot2docker CLI..." $purple
+ curl -L -o $ATOM_SHELL_FILE https://github.com/atom/atom-shell/releases/download/v$ATOM_SHELL_VERSION/$ATOM_SHELL_FILE
+ mkdir -p atom-shell
+ unzip -d atom-shell $ATOM_SHELL_FILE
+fi
+
if [ ! -f $BOOT2DOCKER_CLI_VERSION_FILE ]; then
cecho "-----> Downloading Boot2docker CLI..." $purple
curl -L -o $BOOT2DOCKER_CLI_VERSION_FILE https://s3.amazonaws.com/kite-installer/boot2docker-v$BOOT2DOCKER_CLI_VERSION
@@ -55,7 +65,7 @@ popd
NPM="$BASE/cache/node/bin/npm"
export npm_config_disturl=https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist
-export npm_config_target=0.16.0
+export npm_config_target=0.16.2
export npm_config_arch=ia32
HOME=~/.atom-shell-gyp $NPM install