UNPKG

@gabrielvgx/tecfoodcli

Version:

Projeto para automatizar criação de ambientes TecFood

84 lines (67 loc) 3.66 kB
"use strict"; var _path = _interopRequireDefault(require("path")); var _os = _interopRequireDefault(require("os")); var _nodeEmoji = _interopRequireDefault(require("node-emoji")); var _getPort = _interopRequireWildcard(require("get-port")); var _question = _interopRequireDefault(require("./questions/question.js")); var _app = _interopRequireDefault(require("./util/app.js")); var _docker = _interopRequireDefault(require("./util/docker.js")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } process.on('unhandledRejection', error => { console.log('unhandledRejection', error, error.message); }); async function build() { const HOME_PATH = _os.default.homedir(); const WORKDIR_PATH = `${HOME_PATH}/workfolder`; let availablePorts = []; availablePorts = availablePorts.concat(await (0, _getPort.default)({ port: (0, _getPort.portNumbers)(3000, 3100) })); availablePorts = availablePorts.concat(await (0, _getPort.default)({ port: (0, _getPort.portNumbers)(3000, 3100) })); availablePorts = availablePorts.concat(await (0, _getPort.default)({ port: [9191, 8080].concat(Array.from((0, _getPort.portNumbers)(9000, 9100))) })); availablePorts = availablePorts.concat(await (0, _getPort.default)({ port: [27017].concat(Array.from((0, _getPort.portNumbers)(27000, 27100))) })); const DEFAULT_CONFIG = { services: { app: { volumes: [`${WORKDIR_PATH}:/home/developer/workfolder`] }, basedev: { volumes: [`${WORKDIR_PATH}:/home/developer/workfolder`, '/u01:/u01'], ports: [`${availablePorts.shift()}:80`] }, basedev74: { volumes: [`${WORKDIR_PATH}:/home/developer/workfolder`, '/u01:/u01'], ports: [`${availablePorts.shift()}:80`] }, birt: { volumes: [`${WORKDIR_PATH}:/var/www`], ports: [`${availablePorts.shift()}:9191`] }, mongo: { ports: [`${availablePorts.shift()}:27017`] } } }; _app.default.generateEnvFile(DEFAULT_CONFIG); } build().then(_ => { _question.default.executeQuestions().then(response => { if (response !== 'EXIT') { const ROOT_PATH = _app.default.getAppRootPath(); const dockerComposeFile = _path.default.join(ROOT_PATH, 'src', 'docker', 'docker-compose.yml'); if (_app.default.hasAccess(dockerComposeFile)) { _docker.default.runServices(response); } } }).catch(error => { console.error(_nodeEmoji.default.get('x'), error.message); }); });