diff --git a/index.js b/index.js index fe1c7ad070..5b692ca4c9 100644 --- a/index.js +++ b/index.js @@ -7,6 +7,9 @@ var path = require('path'); var app = require('app'); var BrowserWindow = require('browser-window'); +var dirname = __dirname; +console.log(dirname); + var freeport = function (callback) { var server = net.createServer(); var port = 0; @@ -47,7 +50,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(__dirname, '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' } @@ -71,11 +74,11 @@ var start = function (callback) { 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(__dirname, 'resources', 'settings.json'), 'utf8'); - user_env.DIR = __dirname; + user_env.METEOR_SETTINGS = fs.readFileSync(path.join(dirname, 'resources', 'settings.json'), 'utf8'); + user_env.DIR = dirname; user_env.NODE_ENV = 'production'; - user_env.NODE_PATH = path.join(__dirname, 'node_modules'); - var nodeChild = child_process.spawn(path.join(__dirname, 'resources', 'node'), [path.join(__dirname, 'bundle', 'main.js')], { + user_env.NODE_PATH = path.join(dirname, 'node_modules'); + var nodeChild = child_process.spawn(path.join(dirname, 'resources', 'node'), [path.join(dirname, 'bundle', 'main.js')], { env: user_env }); diff --git a/meteor/client/lib/boot2docker.js b/meteor/client/lib/boot2docker.js index a98369e0fc..71f842296a 100644 --- a/meteor/client/lib/boot2docker.js +++ b/meteor/client/lib/boot2docker.js @@ -7,7 +7,7 @@ Boot2Docker = {}; Boot2Docker.REQUIRED_IP = '192.168.60.103'; Boot2Docker.command = function () { - return path.join(Util.getBinDir(), 'boot2docker-1.2.0') + ' --vm="kitematic-vm"'; + return path.join(Util.getBinDir().replace(' ', '\\ '), 'boot2docker-1.2.0') + ' --vm="kitematic-vm"'; }; Boot2Docker.exec = function (command, callback) { diff --git a/meteor/client/lib/imageutil.js b/meteor/client/lib/imageutil.js index c4dbf3401d..f37e7422c8 100644 --- a/meteor/client/lib/imageutil.js +++ b/meteor/client/lib/imageutil.js @@ -125,11 +125,11 @@ ImageUtil.rebuild = function (imageId) { }); ImageUtil.rebuildHelper(image, function (err) { if (err) { console.error(err); } - }); - _.each(apps, function (app) { - app = Apps.findOne(app._id); - AppUtil.run(app, function (err) { - if (err) { console.error(err); } + _.each(apps, function (app) { + app = Apps.findOne(app._id); + AppUtil.run(app, function (err) { + if (err) { console.error(err); } + }); }); }); } else { diff --git a/meteor/client/lib/installer.js b/meteor/client/lib/installer.js index a87111b3e3..e5f4041502 100644 --- a/meteor/client/lib/installer.js +++ b/meteor/client/lib/installer.js @@ -76,7 +76,7 @@ Installer.steps = [ Boot2Docker.exists(function (err, exists) { if (err) { callback(err); return; } if (!exists) { - var vmFilesPath = path.join(Util.getHomePath(), 'VirtualBox\ VMs', 'kitematic-vm'); + var vmFilesPath = path.join(Util.getHomePath(), 'VirtualBox VMs', 'kitematic-vm'); if (fs.existsSync(vmFilesPath)) { Util.deleteFolder(vmFilesPath); } @@ -131,6 +131,7 @@ Installer.steps = [ }, pastMessage: 'Started the Kitematic VM', message: 'Starting the Kitematic VM', + subMessage: '(This may take a few minutes)', futureMessage: 'Start the Kitematic VM' }, @@ -164,6 +165,7 @@ Installer.steps = [ ]; Installer.run = function (callback) { + Session.set('installing', true); var currentStep = 0; Session.set('currentInstallStep', currentStep); Session.set('numberOfInstallSteps', this.steps.length); @@ -191,6 +193,7 @@ Installer.run = function (callback) { callback(err); } else { // Setup Finished + Session.set('installing', false); console.log('Setup finished.'); callback(); } diff --git a/meteor/client/lib/router.js b/meteor/client/lib/router.js index 4136ad153a..7a24265013 100755 --- a/meteor/client/lib/router.js +++ b/meteor/client/lib/router.js @@ -42,7 +42,10 @@ Router.map(function () { this.route('setup_intro', { path: '/setup/intro', - controller: 'SetupController' + controller: 'SetupController', + onBeforeAction: function () { + Session.set('installing', true); + } }); this.route('setup_install', { diff --git a/meteor/client/lib/sync.js b/meteor/client/lib/sync.js index 00157febf9..44e053f8d8 100644 --- a/meteor/client/lib/sync.js +++ b/meteor/client/lib/sync.js @@ -73,7 +73,7 @@ Sync.addAppWatcher = function (app) { if (err.indexOf('The archive file is missing on some hosts') !== -1) { results = archiveErrorPattern.exec(err); location = results[1].replace(' ', '\\ '); - var fullLocation = path.join(Util.getHomePath(), 'Library/Application\\ Support/Unison', location); + var fullLocation = path.join(Util.getHomePath(), 'Library/Application Support/Unison', location); var cmd = '/bin/rm -rf ' + fullLocation; exec(cmd, function () {}); } diff --git a/meteor/client/lib/util.js b/meteor/client/lib/util.js index 35caad21a1..33eb5a626f 100755 --- a/meteor/client/lib/util.js +++ b/meteor/client/lib/util.js @@ -17,7 +17,7 @@ Util.getBinDir = function () { }; Util.getResourceDir = function () { - return path.join(Util.getHomePath(), 'Library/Application\ Support/Kitematic/Resources'); + return path.join(Util.getHomePath(), 'Library/Application Support/Kitematic/Resources'); }; Util.KITE_PATH = path.join(Util.getHomePath(), 'Kitematic'); diff --git a/meteor/client/main.js b/meteor/client/main.js index 0e5c44ce7c..33b0a1c216 100755 --- a/meteor/client/main.js +++ b/meteor/client/main.js @@ -63,7 +63,7 @@ Handlebars.registerHelper('timeSince', function (date) { return moment(date).fromNow(); }); -Handlebars.registerHelper('isUpdating', function (date) { +Handlebars.registerHelper('isUpdating', function () { return Session.get('isUpdating'); }); @@ -145,7 +145,7 @@ Meteor.setInterval(function () { }, 5000); Meteor.setInterval(function () { - if (Installer.isUpToDate()) { + if (!Session.get('installing')) { Sync.resolveWatchers(function () {}); if (!Session.get('boot2dockerOff')) { fixBoot2DockerVM(function (err) { diff --git a/meteor/client/views/dashboard/settings/dashboard-settings.html b/meteor/client/views/dashboard/settings/dashboard-settings.html index 67cc58fb9e..6af4cccf75 100644 --- a/meteor/client/views/dashboard/settings/dashboard-settings.html +++ b/meteor/client/views/dashboard/settings/dashboard-settings.html @@ -52,4 +52,13 @@ {{/if}} +
You can repair Kitematic installation if the app stops working properly.
+