diff --git a/src/apps.js b/src/apps.js index 5e9efe177..98a965d55 100644 --- a/src/apps.js +++ b/src/apps.js @@ -85,7 +85,6 @@ var appdb = require('./appdb.js'), spawn = require('child_process').spawn, split = require('split'), superagent = require('superagent'), - taskmanager = require('./taskmanager.js'), tasks = require('./tasks.js'), TransformStream = require('stream').Transform, updateChecker = require('./updatechecker.js'), @@ -1213,9 +1212,7 @@ function start(appId, callback) { if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new AppsError(AppsError.BAD_STATE)); // might be a bad guess if (error) return callback(new AppsError(AppsError.INTERNAL_ERROR, error)); - taskmanager.restartAppTask(appId); - - callback(null); + startAppTask(appId, callback); }); } @@ -1229,9 +1226,7 @@ function stop(appId, callback) { if (error && error.reason === DatabaseError.NOT_FOUND) return callback(new AppsError(AppsError.BAD_STATE)); // might be a bad guess if (error) return callback(new AppsError(AppsError.INTERNAL_ERROR, error)); - taskmanager.restartAppTask(appId); - - callback(null); + startAppTask(appId, callback); }); } diff --git a/src/apptask.js b/src/apptask.js index 90cd795ee..d4c26e917 100644 --- a/src/apptask.js +++ b/src/apptask.js @@ -899,8 +899,9 @@ function stopApp(app, callback) { }); } -function handleRunCommand(app, callback) { +function handleRunCommand(app, progressCallback, callback) { assert.strictEqual(typeof app, 'object'); + assert.strictEqual(typeof progressCallback, 'function'); assert.strictEqual(typeof callback, 'function'); if (app.runState === appdb.RSTATE_PENDING_STOP) { @@ -971,6 +972,7 @@ function run(appId, progressCallback, callback) { case appdb.ISTATE_PENDING_UPDATE: return update(app, progressCallback, callback); case appdb.ISTATE_PENDING_FORCE_UPDATE: return update(app, progressCallback, callback); case appdb.ISTATE_PENDING_BACKUP: return backup(app, progressCallback, callback); + case appdb.ISTATE_INSTALLED: return handleRunCommand(app, progressCallback, callback); default: debugApp(app, 'apptask launched with invalid command');