UNPKG

@incdevco/framework

Version:
145 lines (97 loc) 2.89 kB
var fs = require('fs'); var ini = require('ini'); var mkdirp = require('mkdirp'); var Prompt = require('../prompt'); var homeDir = require('os').homedir(); var awsConfig = {}; var awsConfigFileName = homeDir + '/.aws/config'; var awsCredentials = {}; var awsCredentialsFileName = homeDir + '/.aws/credentials'; var developerDetails = {}; var developerDetailsFileName = homeDir + '/.incdevco/developer_details.json'; function loadIniFile(filename, encoding) { 'use strict'; var contents; encoding = encoding || 'utf8'; if (fs.existsSync(filename)) { contents = fs.readFileSync(filename, encoding); } if (contents) { contents = ini.parse(contents); } else { contents = {}; } return contents; } function loadJsonFile(filename, encoding) { 'use strict'; var contents; encoding = encoding || 'utf8'; if (fs.existsSync(filename)) { contents = fs.readFileSync(filename, encoding); } if (contents) { contents = JSON.parse(contents); } else { contents = {}; } return contents; } awsConfig = loadIniFile(awsConfigFileName); awsCredentials = loadIniFile(awsCredentialsFileName); developerDetails = loadJsonFile(developerDetailsFileName); //console.log(JSON.stringify(awsCredentials, null, 2)); Prompt.get({ properties: { email_address: { default: developerDetails.email_address, message: 'An email address to subscribe to administration alerts.', required: true }, github_username: { default: developerDetails.github_username, message: 'Your GitHub username.', required: true }, aws_access_key_id: { default: awsCredentials.default.aws_access_key_id, message: 'AWS Access Key Id', required: true }, aws_secret_access_key: { default: awsCredentials.default.aws_secret_access_key, message: 'AWS Secret Access Key', required: true }, aws_region: { default: awsConfig.default.region, message: 'AWS Default Region', required: false } } }) .then(function (result) { mkdirp.sync(homeDir + '/.incdevco'); mkdirp.sync(homeDir + '/.aws'); fs.writeFileSync(developerDetailsFileName, JSON.stringify({ email_address: result.email_address, github_username: result.github_username }, null, 2), 'utf8'); fs.writeFileSync(awsConfigFileName, ini.stringify({ region: result.aws_region, output: 'json' }, { section: 'default' }), 'utf8'); fs.writeFileSync(awsCredentialsFileName, ini.stringify({ aws_access_key_id: result.aws_access_key_id, aws_secret_access_key: result.aws_secret_access_key }, { section: 'default' }), 'utf8'); process.exit(0); }) .catch(function (exception) { console.error(exception); process.exit(1); });