UNPKG

@aivec/wp-docker-dev-factory

Version:

Spin up local WordPress environments with Docker.

84 lines (83 loc) 3.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var path_1 = __importDefault(require("path")); var os_1 = require("os"); var buildFtpConfig_1 = __importDefault(require("./buildFtpConfig")); var buildEnvVars_1 = __importDefault(require("./buildEnvVars")); var buildVolumePaths_1 = __importDefault(require("./buildVolumePaths")); var buildPluginAutoInstallWhitelist_1 = __importDefault(require("./buildPluginAutoInstallWhitelist")); var lodash_1 = require("lodash"); var buildSSHConfig_1 = __importDefault(require("./buildSSHConfig")); var buildFinalConfig = function (config, workingdir, topdir) { var configCopy = lodash_1._.cloneDeep(config); var phpVersion = configCopy.phpVersion ? configCopy.phpVersion : '7.3'; var snapshotImage = "".concat(configCopy.instanceName, "-").concat(phpVersion); var dockerBridgeIP = 'host.docker.internal'; var locale = configCopy.locale ? configCopy.locale : 'en_US'; if (configCopy.wordpressVersion === 'nightly') { locale = 'en_US'; } var flushOnRestart = false; if (config.database) { flushOnRestart = !!config.database.flushOnRestart; } var image = configCopy.image; if (image) { if (path_1.default.isAbsolute(image)) { image = "".concat((0, os_1.homedir)()).concat(image); } image = path_1.default.resolve(workingdir, image); } var fullUrl = 'http://localhost'; if (config.hostName && config.hostName.length > 0) { fullUrl = "http://".concat(config.hostName); } if (config.containerPort) { fullUrl = "".concat(fullUrl, ":").concat(config.containerPort); } var finalConfig = { instanceName: configCopy.instanceName, containerPort: configCopy.containerPort, hostName: configCopy.hostName ? configCopy.hostName : null, fullUrl: fullUrl, phpVersion: phpVersion, wordpressVersion: configCopy.wordpressVersion ? configCopy.wordpressVersion : 'latest', locale: locale, flushOnRestart: flushOnRestart, database: configCopy.database, env: configCopy.env ? configCopy.env : null, localPlugins: configCopy.localPlugins ? configCopy.localPlugins : [], localThemes: configCopy.localThemes ? configCopy.localThemes : [], downloadPlugins: configCopy.downloadPlugins ? configCopy.downloadPlugins : [], downloadThemes: configCopy.downloadThemes ? configCopy.downloadThemes : [], uploads: configCopy.uploads ? configCopy.uploads : null, uploadsUrl: configCopy.uploadsUrl ? configCopy.uploadsUrl : null, networkname: 'wpdevinstances', containerName: configCopy.instanceName, snapshotImage: snapshotImage, runningFromCache: !!image, dockerBridgeIP: dockerBridgeIP, alreadyInstalled: (0, buildPluginAutoInstallWhitelist_1.default)(configCopy, workingdir), topdir: topdir, workingdir: workingdir, image: image, }; if (configCopy.ftp) { finalConfig.ftp = (0, buildFtpConfig_1.default)(configCopy.ftp); } if (configCopy.ssh) { finalConfig.ssh = (0, buildSSHConfig_1.default)(configCopy.ssh, workingdir); } finalConfig.volumes = (0, buildVolumePaths_1.default)(finalConfig, configCopy, workingdir, topdir); finalConfig.envvarsMap = (0, buildEnvVars_1.default)(finalConfig); finalConfig.envvars = Object.keys(finalConfig.envvarsMap) .map(function (key) { return "--env ".concat(key, "=").concat(finalConfig.envvarsMap[key]); }) .join(' '); return finalConfig; }; exports.default = buildFinalConfig;