UNPKG

@aivec/wp-docker-dev-factory

Version:

Spin up local WordPress environments with Docker.

79 lines (78 loc) 3.72 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 lodash_1 = __importDefault(require("lodash")); var utils_1 = require("../utils"); var constants_1 = require("../constants"); var buildVolumePaths = function (config, rawconfig, workingdir, topdir) { var volumes = []; var localPathKeys = [ { key: 'localPlugins', wpfolder: 'plugins' }, { key: 'localThemes', wpfolder: 'themes' }, ]; localPathKeys.forEach(function (_a) { var key = _a.key, wpfolder = _a.wpfolder; if (config[key]) { config[key].forEach(function (p) { var abspath = (0, utils_1.resolvePathToAbsolute)(workingdir, p); var folder = path_1.default.basename(abspath); volumes.push("".concat(abspath, ":/var/www/html/wp-content/").concat(wpfolder, "/").concat(folder)); }); } }); if (rawconfig.uploads) { volumes.push("".concat((0, utils_1.resolvePathToAbsolute)(workingdir, rawconfig.uploads), ":/var/www/html/wp-content/uploads")); } if (rawconfig.customInitScripts) { rawconfig.customInitScripts.forEach(function (p) { var abspath = (0, utils_1.resolvePathToAbsolute)(workingdir, p); var script = path_1.default.basename(abspath); volumes.push("".concat(abspath, ":").concat(constants_1.dockerUserScriptsDirpath, "/").concat(script)); }); } if (rawconfig.database) { var mysqlDumpfile = rawconfig.database.mysqlDumpfile; if (mysqlDumpfile) { var abspath = (0, utils_1.resolvePathToAbsolute)(workingdir, mysqlDumpfile); // visiblevc's run.sh script will import db.sql automatically on startup volumes.push("".concat(abspath, ":/data/db.sql")); } } if (config.ssh) { var sshCopy = lodash_1.default.cloneDeep(config.ssh); var keyPathVolumes = sshCopy.map(function (_a, index) { var privateKeyPath = _a.privateKeyPath, privateKeyFilename = _a.privateKeyFilename; // remove since Windows paths break JSON delete config.ssh[index].privateKeyPath; return "".concat(privateKeyPath, ":").concat(constants_1.dockerSshDirpath, "/").concat(privateKeyFilename); }); volumes.push.apply(volumes, keyPathVolumes); } /* volumes = [ ...volumes, // mounting a script here tells the visiblevc run.sh script to run it before starting apache `-v ${path.resolve(topdir, `src/scripts/initwp.sh`)}:/docker-entrypoint-initwp.d/run.sh`, ]; */ volumes.push("".concat(path_1.default.resolve(workingdir, 'dumpfiles'), ":").concat(constants_1.dockerDumpfilesDirpath)); if (process.platform === 'win32' && process.env.DOCKER_TOOLBOX_INSTALL_PATH) { var normalizeHost_1 = function (binding) { var delimiter = binding.lastIndexOf(':'); if (delimiter === -1) { return binding.replace(/C:\\/gi, '/c/').replace(/\\/gi, '/'); } var hostPart = binding.slice(0, delimiter); var containerPart = binding.slice(delimiter + 1); hostPart = hostPart.replace(/C:\\/gi, '/c/'); hostPart = hostPart.replace(/\\/gi, '/'); return "".concat(hostPart, ":").concat(containerPart); }; volumes.forEach(function (binding, index) { volumes[index] = normalizeHost_1(binding); }); } return volumes; }; exports.default = buildVolumePaths;