@gabrielvgx/tecfoodcli
Version:
Projeto para automatizar criação de ambientes TecFood
84 lines (67 loc) • 3.66 kB
JavaScript
;
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);
});
});