@smartface/smartface.updater
Advanced tools
Comparing version 0.0.13 to 0.0.14
{ | ||
"name": "@smartface/smartface.updater", | ||
"version": "0.0.13", | ||
"version": "0.0.14", | ||
"description": "SmartfaceCloud Updater plugin", | ||
@@ -5,0 +5,0 @@ "main": "smf.updater.js", |
@@ -34,7 +34,5 @@ define(function(require, exports, module) { | ||
addCommand(); | ||
updateMenu = new ui.item({ | ||
command: "smf.Update" | ||
}); | ||
menus.addItemByPath("Tools/Update", updateMenu, 400, plugin); | ||
@@ -76,5 +74,9 @@ } | ||
if (checkUpdateExecuted) { | ||
emit('smf.updater:finished'); | ||
updateMenu && (updateMenu.enable()); | ||
checkUpdateExecuted = false; | ||
restartWorkspaceIfNeeded(function(restartNeeded) { | ||
if (!restartNeeded) { | ||
emit('smf.updater:finished'); | ||
updateMenu && (updateMenu.enable()); | ||
checkUpdateExecuted = false; | ||
} | ||
}); | ||
} | ||
@@ -277,3 +279,42 @@ } | ||
} | ||
function restartWorkspace() { | ||
commands.exec("restartc9vm"); | ||
} | ||
function restartWorkspaceIfNeeded(callback) { | ||
proc.execFile('node', { | ||
args: ['-v'] | ||
}, function(err, stdout, stderr) { | ||
var restart = false; | ||
if (err || stderr) { | ||
restart = true; | ||
} | ||
if (stdout) { | ||
// stdout will be something like "v4.4.7" | ||
var nodeVersion = stdout.match(/^v(\d+\.\d+\.\d+)/); | ||
nodeVersion = nodeVersion ? nodeVersion[1] : null; | ||
if (nodeVersion) { | ||
nodeVersion = nodeVersion.split(".").map(function(v) { | ||
return parseInt(v, 10); | ||
}); | ||
if (nodeVersion[0] < 4) { | ||
restart = true; | ||
} | ||
else if (nodeVersion[0] == 4 && nodeVersion[1] < 4) { | ||
restart = true; | ||
} | ||
else if (nodeVersion[0] == 4 && nodeVersion[1] == 4 && nodeVersion[2] < 7) { | ||
restart = true; | ||
} | ||
} | ||
else { | ||
restart = true; | ||
} | ||
} | ||
restart && restartWorkspace(); | ||
callback(restart); | ||
}); | ||
} | ||
} | ||
}); | ||
}); |
10516
290