minecraft-utils-shared
Version:
Shared utils for Minecraft Bedrock / Forge development related utilities.
84 lines (80 loc) • 2.82 kB
JavaScript
;
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;