automated-deployment-aws
Version:
Library that automates the deployment of the current project into aws machine
124 lines (102 loc) • 3.06 kB
JavaScript
const fs = require('fs')
const chalk = require('chalk')
const validator = require('validator');
var path = require('path');
var pathToJson = path.resolve(__dirname, 'config.json');
const setConfigurationFile = (argv) => {
const config = {
pemKeyPath: argv.pemKeyPath,
zipFilePath: argv.zipFilePath,
userName: argv.userName,
awsIP : argv.awsIP,
awsFilePath : argv.awsFilePath
}
saveConfiguration(config)
}
const getConfigValue = (argv) => {
var currentDirectory = __dirname.replace(/\\/g, "/");
var projectPath = currentDirectory.replace("/node_modules/automated-deployment-aws/src","")
const config = {
pemKeyPath: argv.pemKeyPath,
zipFilePath: projectPath,
userName: argv.userName,
awsIP : argv.awsIP,
awsFilePath : argv.awsFilePath
}
return config
}
const isDirectoryExist = (dirPath) => {
if (fs.existsSync(dirPath)) {
return true
}
return false
}
const isValidConfiguration = () => {
const config = loadConfiguration()
if(validator.isEmpty(config.pemKeyPath)){
console.log("PemKey path empty");
return false
}
// else if(validator.isEmpty(config.zipFilePath)){
// console.log("zip file Path empty");
// return false
// }
else if(validator.isEmpty(config.userName)){
console.log("username empty");
return false
}else if(validator.isEmpty(config.awsIP)){
console.log("awsIP empty");
return false
}else if(validator.isEmpty(config.awsFilePath)){
console.log("awsFilePath path empty");
return false
}else{
return true
}
}
const resetConfiguration = () => {
const config = {
pemKeyPath: "",
zipFilePath: "",
userName: "",
awsIP : "",
awsFilePath : ""
}
saveConfiguration(config)
}
const showConfiguration = () => {
const config = loadConfiguration()
console.log(chalk.inverse('Your configuration values'))
console.log(config)
}
const saveConfiguration = (config) => {
const dataJSON = JSON.stringify(config)
try{
//console.log("dataJSON...")
//console.log(config)
const check = fs.writeFileSync(pathToJson, dataJSON)
}catch(error){
console.log("error"+e)
}
}
const loadConfiguration = () => {
try {
const dataBuffer = fs.readFileSync(pathToJson)
const dataJSON = dataBuffer.toString()
//console.log("dataJSON...");
//console.log(dataJSON)
return JSON.parse(dataJSON)
} catch (e) {
console.log(e)
return {}
}
}
module.exports = {
setConfigurationFile: setConfigurationFile,
resetConfiguration: resetConfiguration,
showConfiguration: showConfiguration,
isValidConfiguration: isValidConfiguration,
isDirectoryExist : isDirectoryExist,
loadConfiguration : loadConfiguration,
getConfigValue: getConfigValue
}