82 lines
3.1 KiB
JavaScript
82 lines
3.1 KiB
JavaScript
var fs = require('fs');
|
|
var jsonfile = require("jsonfile");
|
|
var execSync = require('child_process').execSync;
|
|
var anError = function(message,dontShowExample){
|
|
console.log(message)
|
|
if(!dontShowExample){
|
|
console.log('Example of usage :')
|
|
console.log('node tool/modifyConfigurationForPlugin.js tensorflow key=1234asdfg port=8080')
|
|
}
|
|
}
|
|
var testValueForObject = function(jsonString){
|
|
var newValue = jsonString + ''
|
|
try{
|
|
newValue = JSON.parse(jsonString)
|
|
}catch(err){
|
|
|
|
}
|
|
if(typeof newValue === 'object'){
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
process.on('uncaughtException', function (err) {
|
|
console.error('Uncaught Exception occured!');
|
|
console.error(err.stack);
|
|
});
|
|
var targetedPlugin = process.argv[2]
|
|
if(!targetedPlugin || targetedPlugin === '' || targetedPlugin.indexOf('=') > -1){
|
|
return anError('Specify a plugin folder name as the first argument.')
|
|
}
|
|
var pluginLocation = __dirname + `/../plugins/${targetedPlugin}/`
|
|
fs.stat(pluginLocation,function(err){
|
|
if(!err){
|
|
var configLocation = `${pluginLocation}conf.json`
|
|
var config = jsonfile.readFileSync(configLocation);
|
|
var processArgv = process.argv.splice(3,process.argv.length)
|
|
var arguments = {};
|
|
if(processArgv.length === 0){
|
|
return anError('No changes made. Add arguments to add or modify.')
|
|
}
|
|
processArgv.forEach(function(val) {
|
|
var theSplit = val.split('=');
|
|
var index = (theSplit[0] || '').trim();
|
|
var value = theSplit[1];
|
|
if(index.indexOf('addToConfig') > -1 || index == 'addToConfig'){
|
|
try{
|
|
value = JSON.parse(value)
|
|
config = Object.assign(config,value)
|
|
}catch(err){
|
|
anError('Not a valid Data set. "addToConfig" value must be a JSON string. You may need to wrap it in singles quotes.')
|
|
}
|
|
}else{
|
|
if(value==='DELETE'){
|
|
delete(config[index])
|
|
}else{
|
|
if(testValueForObject(value)){
|
|
config[index] = JSON.parse(value);
|
|
}else{
|
|
if(index === 'key'){
|
|
console.log(`Modifying main conf.json with updated key.`)
|
|
execSync(`node ${__dirname}/modifyConfiguration.js addToConfig='{"pluginKeys":{"${config.plug}":"${value + ''}"}}'`,function(err){
|
|
console.log(err)
|
|
})
|
|
config[index] = value + ''
|
|
}else{
|
|
config[index] = value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
console.log(index + ': ' + value);
|
|
});
|
|
|
|
jsonfile.writeFile(configLocation,config,{spaces: 2},function(){
|
|
console.log('Changes Complete. Here is what it is now.')
|
|
console.log(JSON.stringify(config,null,2))
|
|
})
|
|
}else{
|
|
anError(`Plugin "${targetedPlugin}" not found.`)
|
|
}
|
|
})
|