| /*! |
| * 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"); |
| } |
| }); |
| |