UNPKG

automated-deployment-aws

Version:

Library that automates the deployment of the current project into aws machine

124 lines (102 loc) 3.06 kB
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 }