From 28054b17fc48ac5c2487d4e681f405c79c32d289 Mon Sep 17 00:00:00 2001 From: PhilKunz Date: Tue, 2 Aug 2016 23:11:42 +0200 Subject: [PATCH] update nvm detection --- dist/npmci.bash.js | 10 +++++++--- dist/npmci.install.js | 14 ++++++++++---- npmextra.json | 8 ++++++++ ts/npmci.bash.ts | 34 ++++++++++++++++++---------------- ts/npmci.install.ts | 24 +++++++++++++----------- 5 files changed, 56 insertions(+), 34 deletions(-) create mode 100644 npmextra.json diff --git a/dist/npmci.bash.js b/dist/npmci.bash.js index a30e2c1..c273c40 100644 --- a/dist/npmci.bash.js +++ b/dist/npmci.bash.js @@ -4,11 +4,15 @@ const plugins = require("./npmci.plugins"); let nvmSourceString = ""; exports.nvmAvailable = false; let checkNvm = () => { - let nvmExecCode = plugins.shelljs.exec(`bash -c "source /usr/local/nvm/nvm.sh"`).code; - if (nvmExecCode === 0) { + if (plugins.shelljs.exec(`bash -c "source /usr/local/nvm/nvm.sh"`, { silent: true }).code === 0) { nvmSourceString = `source /usr/local/nvm/nvm.sh && `; exports.nvmAvailable = true; } + else if (plugins.shelljs.exec(`bash -c "source ~/.nvm/nvm.sh"`, { silent: true }).code === 0) { + nvmSourceString = `source ~/.nvm/nvm.sh && `; + exports.nvmAvailable = true; + } + ; }; checkNvm(); exports.bash = (commandArg, retryArg = 2, bareArg = false) => { @@ -45,4 +49,4 @@ exports.bash = (commandArg, retryArg = 2, bareArg = false) => { exports.bashBare = (commandArg, retryArg = 2) => { return exports.bash(commandArg, retryArg, true); }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixNQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBRzNDLElBQUksZUFBZSxHQUFVLEVBQUUsQ0FBQztBQUNyQixvQkFBWSxHQUFXLEtBQUssQ0FBQztBQUN4QyxJQUFJLFFBQVEsR0FBRztJQUNYLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RGLEVBQUUsQ0FBQSxDQUFDLFdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ2xCLGVBQWUsR0FBRyxrQ0FBa0MsQ0FBQTtRQUNwRCxvQkFBWSxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBQ0YsUUFBUSxFQUFFLENBQUM7QUFFQSxZQUFJLEdBQUcsQ0FBQyxVQUFpQixFQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUMsT0FBTyxHQUFHLEtBQUs7SUFDN0QsSUFBSSxRQUFlLENBQUM7SUFDcEIsSUFBSSxNQUFhLENBQUM7SUFDbEIsSUFBSSxVQUFVLENBQUM7SUFDZixFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUEsQ0FBQztRQUN4QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBQyxDQUFDO1lBQ2hDLEVBQUUsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQztnQkFDVCxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdCLFlBQVksZUFBZSxJQUFJLFVBQVUsR0FBRyxDQUMvQyxDQUFDO1lBQ04sQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQ0QsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDM0IsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsRUFBRSxDQUFBLENBQUMsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUEsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUNyQixDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLHFEQUFxRDtZQUMzRSxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2xGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEdBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUYsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFBO0FBRVUsZ0JBQVEsR0FBRyxDQUFDLFVBQVUsRUFBQyxRQUFRLEdBQUcsQ0FBQztJQUMxQyxNQUFNLENBQUMsWUFBSSxDQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFBIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixNQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBRzNDLElBQUksZUFBZSxHQUFXLEVBQUUsQ0FBQztBQUN0QixvQkFBWSxHQUFZLEtBQUssQ0FBQztBQUN6QyxJQUFJLFFBQVEsR0FBRztJQUNYLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHdDQUF3QyxFQUFDLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUYsZUFBZSxHQUFHLGtDQUFrQyxDQUFBO1FBQ3BELG9CQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUMsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RixlQUFlLEdBQUcsMEJBQTBCLENBQUE7UUFDNUMsb0JBQVksR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUFBLENBQUM7QUFDTixDQUFDLENBQUM7QUFDRixRQUFRLEVBQUUsQ0FBQztBQUVBLFlBQUksR0FBRyxDQUFDLFVBQWtCLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsS0FBSztJQUNoRSxJQUFJLFFBQWdCLENBQUM7SUFDckIsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxVQUFVLENBQUM7SUFDZixFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDWCxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdCLFlBQVksZUFBZSxJQUFJLFVBQVUsR0FBRyxDQUMvQyxDQUFDO1lBQ04sQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQ0QsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDM0IsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLHFEQUFxRDtZQUMzRSxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2xGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDekYsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFBO0FBRVUsZ0JBQVEsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLEdBQUcsQ0FBQztJQUMzQyxNQUFNLENBQUMsWUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFBIn0= \ No newline at end of file diff --git a/dist/npmci.install.js b/dist/npmci.install.js index c5d3c68..1a4b067 100644 --- a/dist/npmci.install.js +++ b/dist/npmci.install.js @@ -2,6 +2,7 @@ require("typings-global"); const plugins = require("./npmci.plugins"); const npmci_bash_1 = require("./npmci.bash"); +const npmci_bash_2 = require("./npmci.bash"); exports.install = (versionArg) => { let done = plugins.q.defer(); plugins.beautylog.log("now installing " + "node ".green + ("version " + versionArg).yellow); @@ -19,12 +20,17 @@ exports.install = (versionArg) => { version = versionArg; } ; - npmci_bash_1.bash("nvm install " + version + - " && nvm alias default " + version); - plugins.beautylog.success("Node version " + version + " successfully installed!"); + if (npmci_bash_2.nvmAvailable) { + npmci_bash_1.bash(`nvm install ${version} && nvm alias default ${version}`); + plugins.beautylog.success(`Node version ${version} successfully installed!`); + } + else { + plugins.beautylog.warn("Nvm not in path so staying at installed node version!"); + } + ; npmci_bash_1.bash("node -v"); npmci_bash_1.bash("npm -v"); done.resolve(); return done.promise; }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixNQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDZCQUFtQixjQUFjLENBQUMsQ0FBQTtBQUV2QixlQUFPLEdBQUcsQ0FBQyxVQUFVO0lBQzVCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RixJQUFJLE9BQWMsQ0FBQztJQUNuQixFQUFFLENBQUEsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLENBQUEsQ0FBQztRQUN2QixPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFBLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxDQUFBLENBQUM7UUFDM0IsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsQ0FBQSxDQUFDO1FBQzlCLE9BQU8sR0FBRyxPQUFPLENBQUE7SUFDckIsQ0FBQztJQUFDLElBQUksQ0FBRSxDQUFDO1FBQ0wsT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQUEsQ0FBQztJQUNGLGlCQUFJLENBQ0EsY0FBYyxHQUFHLE9BQU87UUFDeEIsd0JBQXdCLEdBQUcsT0FBTyxDQUNyQyxDQUFDO0lBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLE9BQU8sR0FBRywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2xGLGlCQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEIsaUJBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixNQUFZLE9BQU8sV0FBTSxpQkFBaUIsQ0FBQyxDQUFBO0FBQzNDLDZCQUFxQixjQUFjLENBQUMsQ0FBQTtBQUNwQyw2QkFBNkIsY0FFN0IsQ0FBQyxDQUYwQztBQUVoQyxlQUFPLEdBQUcsQ0FBQyxVQUFVO0lBQzVCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RixJQUFJLE9BQWUsQ0FBQztJQUNwQixFQUFFLENBQUMsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN6QixPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0IsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxPQUFPLENBQUE7SUFDckIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxHQUFHLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQyxDQUFDLHlCQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2YsaUJBQUksQ0FBQyxlQUFlLE9BQU8seUJBQXlCLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDOUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sMEJBQTBCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQixpQkFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFBIn0= \ No newline at end of file diff --git a/npmextra.json b/npmextra.json new file mode 100644 index 0000000..bf20be6 --- /dev/null +++ b/npmextra.json @@ -0,0 +1,8 @@ +{ + "npmts":{ + "mode":"default" + }, + "npmdocker":{ + "baseImage":"hosttoday/ht-docker-node:npmts" + } +} \ No newline at end of file diff --git a/ts/npmci.bash.ts b/ts/npmci.bash.ts index 2c94fda..354996b 100644 --- a/ts/npmci.bash.ts +++ b/ts/npmci.bash.ts @@ -2,24 +2,26 @@ import "typings-global"; import * as plugins from "./npmci.plugins"; -let nvmSourceString:string = ""; -export let nvmAvailable:boolean = false; +let nvmSourceString: string = ""; +export let nvmAvailable: boolean = false; let checkNvm = () => { - let nvmExecCode = plugins.shelljs.exec(`bash -c "source /usr/local/nvm/nvm.sh"`).code; - if(nvmExecCode === 0){ + if (plugins.shelljs.exec(`bash -c "source /usr/local/nvm/nvm.sh"`,{silent:true}).code === 0) { nvmSourceString = `source /usr/local/nvm/nvm.sh && ` nvmAvailable = true; - } + } else if (plugins.shelljs.exec(`bash -c "source ~/.nvm/nvm.sh"`,{silent:true}).code === 0) { + nvmSourceString = `source ~/.nvm/nvm.sh && ` + nvmAvailable = true; + }; }; checkNvm(); -export let bash = (commandArg:string,retryArg = 2,bareArg = false) => { - let exitCode:number; - let stdOut:string; +export let bash = (commandArg: string, retryArg = 2, bareArg = false) => { + let exitCode: number; + let stdOut: string; let execResult; - if(!process.env.NPMTS_TEST){ // NPMTS_TEST is used during testing - for (let i = 0; i <= retryArg; i++){ - if(!bareArg){ + if (!process.env.NPMTS_TEST) { // NPMTS_TEST is used during testing + for (let i = 0; i <= retryArg; i++) { + if (!bareArg) { execResult = plugins.shelljs.exec( `bash -c "${nvmSourceString} ${commandArg}"` ); @@ -28,13 +30,13 @@ export let bash = (commandArg:string,retryArg = 2,bareArg = false) => { } exitCode = execResult.code; stdOut = execResult.stdout; - if(exitCode !== 0 && i == retryArg){ + if (exitCode !== 0 && i == retryArg) { process.exit(1); - } else if(exitCode == 0){ + } else if (exitCode == 0) { i = retryArg + 1; // if everything works out ok retrials are not wanted } else { plugins.beautylog.warn("Something went wrong! Exit Code: " + exitCode.toString()); - plugins.beautylog.info("Retry " + (i + 1).toString() + " of " + retryArg.toString()); + plugins.beautylog.info("Retry " + (i + 1).toString() + " of " + retryArg.toString()); } } } else { @@ -43,6 +45,6 @@ export let bash = (commandArg:string,retryArg = 2,bareArg = false) => { return stdOut; } -export let bashBare = (commandArg,retryArg = 2) => { - return bash(commandArg,retryArg,true); +export let bashBare = (commandArg, retryArg = 2) => { + return bash(commandArg, retryArg, true); } \ No newline at end of file diff --git a/ts/npmci.install.ts b/ts/npmci.install.ts index c09c699..218cf48 100644 --- a/ts/npmci.install.ts +++ b/ts/npmci.install.ts @@ -1,25 +1,27 @@ import "typings-global"; import * as plugins from "./npmci.plugins"; -import {bash} from "./npmci.bash"; +import { bash } from "./npmci.bash"; +import { nvmAvailable } from "./npmci.bash" export let install = (versionArg) => { let done = plugins.q.defer(); plugins.beautylog.log("now installing " + "node ".green + ("version " + versionArg).yellow); - let version:string; - if(versionArg == "stable"){ + let version: string; + if (versionArg == "stable") { version = "6.3.0"; - } else if(versionArg == "lts"){ + } else if (versionArg == "lts") { version = "6.3.0"; - } else if(versionArg == "legacy"){ + } else if (versionArg == "legacy") { version = "6.3.0" - } else { + } else { version = versionArg; }; - bash( - "nvm install " + version + - " && nvm alias default " + version - ); - plugins.beautylog.success("Node version " + version + " successfully installed!"); + if (nvmAvailable) { + bash(`nvm install ${version} && nvm alias default ${version}`) + plugins.beautylog.success(`Node version ${version} successfully installed!`); + } else { + plugins.beautylog.warn("Nvm not in path so staying at installed node version!"); + }; bash("node -v"); bash("npm -v"); done.resolve();