UNPKG

minecraft-utils-shared

Version:

Shared utils for Minecraft Bedrock / Forge development related utilities.

84 lines (80 loc) 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _chalk = _interopRequireDefault(require("chalk")); var _fsExtra = _interopRequireDefault(require("fs-extra")); var _os = _interopRequireDefault(require("os")); var _path = _interopRequireDefault(require("path")); var _child_process = require("child_process"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @file Minecraft Utils Shared - Gradle * @license Apache-2.0 * @author Markus@Bordihn.de (Markus Bordihn) */ const isWindows = _os.default.type() == 'Windows NT' || _os.default.platform == 'win32'; /** * @param {string} taskName * @param {string} projectPath * @returns {boolean} */ const runTask = (taskName = '', projectPath = '') => { const gradleApp = getGradleExecutable(); if (!gradleApp) { return false; } if (!isWindows && gradleApp.endsWith('gradlew')) { _fsExtra.default.chmodSync(gradleApp, 0o755); } if (taskName) { console.log(_chalk.default.green('Running gradle task', taskName, projectPath ? `in ${projectPath}` : '...', `on ${_os.default.type()} (${_os.default.platform()})`)); } const gradleArgs = taskName ? [taskName] : []; if (projectPath) { gradleArgs.push('--project-dir'); gradleArgs.push(projectPath); } const gradleCommand = (0, _child_process.spawnSync)(gradleApp, gradleArgs, { stdio: 'inherit' }); if (gradleCommand.error) { console.error(_chalk.default.red('Unable to run Gradle Task:'), gradleCommand.error); return false; } return true; }; /** * @returns {string} */ const getGradleExecutable = () => { if (isWindows && _fsExtra.default.existsSync('gradlew.bat')) { return 'gradlew.bat'; } if (_fsExtra.default.existsSync('gradlew')) { return 'gradlew'; } if (process.env.GRADLE_HOME_TEST || process.env.GRADLE_HOME) { const gradleHomePath = process.env.GRADLE_HOME_TEST || process.env.GRADLE_HOME; if (isWindows && _fsExtra.default.existsSync(_path.default.join(gradleHomePath, 'gradlew.bat'))) { return _path.default.join(gradleHomePath, 'gradlew.bat'); } if (_fsExtra.default.existsSync(_path.default.join(gradleHomePath, 'gradlew'))) { return _path.default.join(gradleHomePath, 'gradlew'); } if (_fsExtra.default.existsSync(_path.default.join(gradleHomePath, 'bin', 'gradle'))) { return _path.default.join(gradleHomePath, 'bin', 'gradle'); } } const searchGradle = ((0, _child_process.spawnSync)('which', ['gradle']).stderr || '').toString(); if (searchGradle) { return searchGradle.trim(); } console.error(_chalk.default.red('Unable to locate Gradle Wrapper or Gradle!')); return ''; }; var _default = { runTask }; exports.default = _default;