Skip to content

Commit bf209c6

Browse files
Merge pull request #2408 from adaptlearning/issue/2407
Allow non-interactive install and upgrade scripts
2 parents b5edc5c + 15368cf commit bf209c6

3 files changed

Lines changed: 25 additions & 6 deletions

File tree

install.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,9 @@ installHelpers.checkPrimaryDependencies(function(error) {
261261
]
262262
};
263263
if(!IS_INTERACTIVE) {
264+
if (installHelpers.inputHelpers.toBoolean(optimist.argv.useJSON)) {
265+
USE_CONFIG = true;
266+
}
264267
return start();
265268
}
266269
console.log('');
@@ -282,7 +285,8 @@ installHelpers.checkPrimaryDependencies(function(error) {
282285
function generatePromptOverrides() {
283286
if(USE_CONFIG) {
284287
var configJson = require('./conf/config.json');
285-
var configData = JSON.parse(JSON.stringify(configJson).replace(/true/g, '"y"').replace(/false/g, '"n"'));
288+
var configData = JSON.parse(JSON.stringify(configJson).replace(/:true/g, ':"y"').replace(/:false/g, ':"n"'));
289+
addConfig(configData);
286290
configData.install = 'y';
287291
}
288292
const sessionSecret = USE_CONFIG && configData.sessionSecret || crypto.randomBytes(64).toString('hex');
@@ -345,7 +349,7 @@ function configureDatabase(callback) {
345349
installHelpers.getInput(inputData.database.dbConfig, function(result) {
346350
addConfig(result);
347351

348-
var isStandard = !result.useConnectionUri || USE_CONFIG && configResults.useConnectionUri !== 'y';
352+
var isStandard = !installHelpers.inputHelpers.toBoolean(result.useConnectionUri);
349353
var config = inputData.database[isStandard ? 'configureStandard' : 'configureUri'];
350354

351355
installHelpers.getInput(config, function(result) {
@@ -360,14 +364,14 @@ function configureFeatures(callback) {
360364
function smtp(cb) {
361365
installHelpers.getInput(inputData.features.smtp.confirm, function(result) {
362366
addConfig(result);
363-
if(!result.useSmtp || USE_CONFIG && configResults.useSmtp !== 'y') {
367+
if (!installHelpers.inputHelpers.toBoolean(result.useSmtp)) {
364368
return cb();
365369
}
366370
// prompt user if custom connection url or well-known-service should be used
367371
installHelpers.getInput(inputData.features.smtp.confirmConnectionUrl, function(result) {
368372
addConfig(result);
369373
var smtpConfig;
370-
if (result.useSmtpConnectionUrl === true) {
374+
if (installHelpers.inputHelpers.toBoolean(result.useSmtpConnectionUrl)) {
371375
smtpConfig = inputData.features.smtp.configure.concat(inputData.features.smtp.configureConnectionUrl);
372376
} else {
373377
smtpConfig = inputData.features.smtp.configure.concat(inputData.features.smtp.configureService);

lib/installHelpers.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,21 @@ var inputHelpers = {
4141
*/
4242
readline.moveCursor(process.stdout, 0, -1);
4343
return v;
44+
},
45+
isFalsyString: function(v) {
46+
if (typeof v !== 'string') return false;
47+
switch (v.trim()) {
48+
case '':
49+
case 'N':
50+
case 'n':
51+
case 'false':
52+
case 'null':
53+
case 'undefined':
54+
case '0':
55+
return true;
56+
default:
57+
return false;
58+
}
4459
}
4560
};
4661

upgrade.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ function checkForUpdates(callback) {
142142
function doUpdate(data) {
143143
async.series([
144144
function upgradeAuthoring(cb) {
145-
if(!data.adapt_authoring) {
145+
if (installHelpers.inputHelpers.isFalsyString(data.adapt_authoring)) {
146146
return cb();
147147
}
148148
installHelpers.updateAuthoring({
@@ -159,7 +159,7 @@ function doUpdate(data) {
159159
});
160160
},
161161
function upgradeFramework(cb) {
162-
if(!data.adapt_framework) {
162+
if (installHelpers.inputHelpers.isFalsyString(data.adapt_framework)) {
163163
return cb();
164164
}
165165
var dir = path.join(configuration.tempDir, configuration.getConfig('masterTenantID'), OutputConstants.Folders.Framework);

0 commit comments

Comments
 (0)