cdk-cli
Version:
'ckd aws' cli helper
87 lines (78 loc) • 3.27 kB
JavaScript
const inquirer = require("./inquirer");
const files = require("./files");
const env = {
// CDK ENV VARIABLES
TYPE: '',
CDK_DEFAULT_ACCOUNT: '',
CDK_DEFAULT_REGION: '',
PROJECT_NAME: '',
STAGE_NAME: '',
HOSTED_ZONE_DOMAIN: '',
HOSTED_ZONE_DOMAIN_CERTIFICATE_ARN: '',
// CODEPIPELINE FRONTEND ENV VARIABLES
FRONTEND_GITHUB_REPO_BRANCH: '',
FRONTEND_GITHUB_OWNER: '',
FRONTEND_GITHUB_OAUTHTOKEN: '',
FRONTEND_GITHUB_REPO: '',
FRONTEND_BUILD_COMMAND: '',
// CODEPIPELINE BACKEND ENV VARIABLES
BACKEND_GITHUB_REPO_BRANCH: '',
BACKEND_GITHUB_OWNER: '',
BACKEND_GITHUB_OAUTHTOKEN: '',
BACKEND_GITHUB_REPO: '',
// FRONTEND SETTINGS
WEBAPP_DOMAIN: '',
// BACKEND SETTINGS
SHARED_LOAD_BALANCER: '',
INSTANCE_TYPE: '',
BACKEND_PATH: '',
BACKEND_DOMAIN: '',
}
module.exports = {
createEnvFile: async () => {
const envAnswer = await inquirer.askEnvFile();
if (envAnswer === 'Yes') {
const type = await inquirer.askTYPE();
env.CDK_DEFAULT_ACCOUNT = await inquirer.askCDK_DEFAULT_ACCOUNT();
env.CDK_DEFAULT_REGION = await inquirer.askCDK_DEFAULT_REGION();
env.PROJECT_NAME = await inquirer.askPROJECT_NAME();
env.STAGE_NAME = await inquirer.askSTAGE_NAME();
env.HOSTED_ZONE_DOMAIN = await inquirer.askHOSTED_ZONE_DOMAIN();
env.HOSTED_ZONE_DOMAIN_CERTIFICATE_ARN = await inquirer.askHOSTED_ZONE_DOMAIN_CERTIFICATE_ARN();
switch (type) {
case 'Server':
await createBackEndEnv();
break;
case 'Web':
await createFrontEndEnv();
break;
case 'Both':
await createBackEndEnv();
await createFrontEndEnv();
break;
}
const format = Object.keys(env).map((key) => (`${key}=${env[key] || ''}\n`));
files.createFile(format.join(''));
}
},
}
const createBackEndEnv = async () => {
env.TYPE = 'SERVER';
env.BACKEND_GITHUB_REPO = await inquirer.askRepoName();
env.BACKEND_GITHUB_REPO_BRANCH = await inquirer.askRepoBranch();
env.BACKEND_GITHUB_OWNER = await inquirer.askRepoOwner();
env.BACKEND_GITHUB_OAUTHTOKEN = await inquirer.askRepoOwnerOAUTHTOKEN();
env.INSTANCE_TYPE = await inquirer.askINSTANCE_TYPE();
env.BACKEND_DOMAIN = await inquirer.askBACKEND_DOMAIN();
env.BACKEND_PATH = await inquirer.askBACKEND_PATH();
env.SHARED_LOAD_BALANCER = env.INSTANCE_TYPE !== 'SHARED_LOAD_BALANCER' ? '' : await inquirer.askSHARED_LOAD_BALANCER();
};
const createFrontEndEnv = async () => {
env.TYPE = 'WEB';
env.FRONTEND_GITHUB_REPO = await inquirer.askRepoName();
env.FRONTEND_GITHUB_REPO_BRANCH = await inquirer.askRepoBranch();
env.FRONTEND_GITHUB_OWNER = await inquirer.askRepoOwner();
env.FRONTEND_GITHUB_OAUTHTOKEN = await inquirer.askRepoOwnerOAUTHTOKEN();
env.FRONTEND_BUILD_COMMAND = await inquirer.askFRONTEND_BUILD_COMMAND();
env.WEBAPP_DOMAIN = await inquirer.askWEBAPP_DOMAIN();
};