/* eslint-disable global-require */ import fs from "fs"; import path from "path"; const hasServerConfig = fs.existsSync(path.resolve(__dirname, "config.js")); const hasClientConfig = fs.existsSync( path.resolve(__dirname, "../client/config.js") ); if (hasServerConfig && hasClientConfig) { const serverConfig = require("./config.js"); const clientConfig = require("../client/config.js"); let envTemplate = fs.readFileSync( path.resolve(__dirname, "../.template.env"), "utf-8" ); const configs = { PORT: serverConfig.PORT || 3000, DEFAULT_DOMAIN: serverConfig.DEFAULT_DOMAIN || "localhost:3000", DB_URI: serverConfig.DB_URI || "bolt://localhost", DB_USERNAME: serverConfig.DB_USERNAME, DB_PASSWORD: serverConfig.DB_PASSWORD, REDIS_DISABLED: serverConfig.REDIS_DISABLED || false, REDIS_HOST: serverConfig.REDIS_HOST || "127.0.0.1", REDIS_PORT: serverConfig.REDIS_PORT || 6379, REDIS_PASSWORD: serverConfig.REDIS_PASSWORD, USER_LIMIT_PER_DAY: serverConfig.USER_LIMIT_PER_DAY || 50, JWT_SECRET: serverConfig.JWT_SECRET || "securekey", ADMIN_EMAILS: serverConfig.ADMIN_EMAILS.join(","), RECAPTCHA_SITE_KEY: clientConfig.RECAPTCHA_SITE_KEY, RECAPTCHA_SECRET_KEY: serverConfig.RECAPTCHA_SECRET_KEY, GOOGLE_SAFE_BROWSING_KEY: serverConfig.GOOGLE_SAFE_BROWSING_KEY, GOOGLE_ANALYTICS: clientConfig.GOOGLE_ANALYTICS_ID, GOOGLE_ANALYTICS_UNIVERSAL: serverConfig.GOOGLE_ANALYTICS, MAIL_HOST: serverConfig.MAIL_HOST, MAIL_PORT: serverConfig.MAIL_PORT, MAIL_SECURE: serverConfig.MAIL_SECURE, MAIL_USER: serverConfig.MAIL_USER, MAIL_FROM: serverConfig.MAIL_FROM, MAIL_PASSWORD: serverConfig.MAIL_PASSWORD, REPORT_MAIL: serverConfig.REPORT_MAIL, CONTACT_EMAIL: clientConfig.CONTACT_EMAIL }; Object.keys(configs).forEach(c => { envTemplate = envTemplate.replace( new RegExp(`{{${c}}}`, "gm"), configs[c] || "" ); }); fs.writeFileSync(path.resolve(__dirname, "../.env"), envTemplate); fs.renameSync( path.resolve(__dirname, "config.js"), path.resolve(__dirname, "old.config.js") ); fs.renameSync( path.resolve(__dirname, "../client/config.js"), path.resolve(__dirname, "../client/old.config.js") ); }