UNPKG

cdk-cli

Version:

'ckd aws' cli helper

87 lines (78 loc) 3.27 kB
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(); };