blob: 1205aa48f935ceeb9b923f628562f5fe6d63864a [file] [log] [blame]
/*!
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
var exec = require('child_process');
var prompt = require('prompt');
var fs = require('fs');
function runNpm(target, dir) {
console.log('\n---> npm ' + target);
let options = {stdio:[0,1,2]};
if (dir) options.cwd = dir;
exec.execSync("npm " + target,options);
}
function npmInstallAll() {
setNpmconfig();
if (!fs.existsSync('../dox-sequence-diagram-ui/node_modules')) {
console.log('--> first time installing dox-sequence-diagram-ui');
runNpm('install', '../dox-sequence-diagram-ui');
};
runNpm('install');
// just to make sure restful js is installed properly
runNpm('install jquery', 'node_modules/restful-js');
}
function getDevConfig() {
var content=fs.readFileSync('./devConfig.json');
var data=JSON.parse(content);
console.log('Current ATT server is set to: ' + data.proxyATTTarget);
if (!data.proxyTarget) {
console.log('Current onboarding server defaults to the ATT server');
} else {
console.log('Current onboarding server set to: ' + data.proxyTarget);
}
return data;
}
function setNpmconfig() {
exec.execSync("npm config set proxy http://genproxy.amdocs.com:8080");
exec.execSync("npm config set https_proxy http://genproxy.amdocs.com:8080");
}
// getting the run details before starting to work
prompt.start();
prompt.get([{
name:'runType',
type:'number',
default:1,
description: 'Choose run: 1-test and build, 2- run frontend server '
}], function (err, result) {
if (result.runType === 2) {
console.log('--> Reading the configuration for the local server');
if (!fs.existsSync('./devConfig.json')) {
console.log('First time - setting up the devConfig.json file');
fs.writeFileSync('./devConfig.json', fs.readFileSync('./devConfig.defaults.json'));
}
let data = getDevConfig();
let attProxyField = {
name:'attProxyTarget',
description:'ATT server'
};
let proxyField = {
name:'proxyTarget',
description:'onboarding server, \'null\' to reset'
};
if (data.proxyATTTarget) attProxyField.default = data.proxyATTTarget;
if (data.proxyTarget) proxyField.default = data.proxyTarget;
prompt.get([ attProxyField, proxyField], function (err,result) {
data.proxyATTTarget = result.attProxyTarget;
if(result.proxyTarget) {
if (result.proxyTarget === 'null') {
if (data.proxyTarget) delete data.proxyTarget;
} else {
data.proxyTarget = result.proxyTarget;
}
}
fs.writeFileSync('./devConfig.json', JSON.stringify(data, null, 2));
getDevConfig();
console.log('FE server will be answering on: http://localhost:9000/sdc1/proxy-designer1#/onboardVendor');
npmInstallAll();
runNpm("start");
}
);
} else {
npmInstallAll();
runNpm("run build");
runNpm("run test");
}
});