liferay-theme-tasks
Version:
A set of tasks for building and deploying Liferay Portal themes.
77 lines (59 loc) • 1.75 kB
JavaScript
/**
* SPDX-FileCopyrightText: © 2017 Liferay, Inc. <https://liferay.com>
* SPDX-License-Identifier: MIT
*/
;
const _ = require('lodash');
const path = require('path');
const checkNodeVersion = require('../lib/checkNodeVersion');
const project = require('../lib/project');
const {getArgv} = require('../lib/util');
const RegisterHooks = require('./lib/register_hooks');
const registerTaskDeploy = require('./tasks/deploy');
const registerTaskInit = require('./tasks/init');
const registerTaskVersion = require('./tasks/version');
const registerTaskWar = require('./tasks/war');
checkNodeVersion();
function processOptions(options) {
const argv = getArgv();
let distName =
options.distName || project.pkgJson.name || path.basename(project.dir);
if (/\${/.test(distName) && project.pkgJson) {
const distNameTemplate = _.template(distName);
distName = distNameTemplate(project.pkgJson);
}
options.argv = argv;
options.distName = distName;
options.pathDist = options.pathDist || './dist';
options.rootDir = options.rootDir || './docroot';
options.storeConfig = {
name: 'LiferayPlugin',
path: 'liferay-plugin.json',
...options.storeConfig,
};
return options;
}
function registerTasks(options = {}) {
options = processOptions(options);
project.init(options);
registerTaskInit();
registerTaskDeploy();
registerTaskVersion();
registerTaskWar();
if (options.extensions) {
if (!_.isArray(options.extensions)) {
options.extensions = [options.extensions];
}
_.forEach(options.extensions, (extension) => {
extension(options);
});
}
RegisterHooks.hook(project.gulp, {
hookFn: options.hookFn,
hookModules: options.hookModules,
options,
});
}
module.exports = {
registerTasks,
};