grunt-tdevopsui5
Version:
UI5 tools for build/deploy/version managment of ui5 applicaton
76 lines (65 loc) • 2.1 kB
JavaScript
/*
* tdevopsui5 - tbuild task
* https://github.com/Neasit/tdevopsui5
*
* Copyright (c) 2019 Neasit
* Licensed under the MIT license.
*/
;
var optionFactories = require('./lib/optionsFactory.js');
var utils = require('./lib/utils.js');
var oTasksVersion = require('./tdevopsui5_version.js');
module.exports = function(grunt) {
grunt.registerMultiTask('tdevopsui5_deploy', 'Deploy ui5 application to ABAP server', function() {
var options = this.options({
// abap options
package: null,
bspcontainer: null,
bspcontainer_text: 'UI5 Application',
transportno: null,
calc_appindex: true,
// folder
dest: 'dist',
src: '**/*.*',
// server info
server: null,
client: null,
useStrictSSL: false,
// credentional
user: null,
pwd: null,
// version
version: null, // 'D', 'P', 'M'
});
if (
!options.package ||
!options.bspcontainer ||
!options.transportno ||
!options.server ||
!options.client ||
!options.user ||
!options.pwd
) {
throw new Error('Missing required options for deploy!');
}
var aTasks = [];
if (options.version) {
oTasksVersion(grunt);
var oVersionOptions = optionFactories.createVersionOptions(options);
var sTaskName = 'deploy' + options.version;
grunt.config.set('tdevopsui5_version.' + sTaskName, oVersionOptions);
aTasks.push('tdevopsui5_version:' + sTaskName);
var oCopyOptions = optionFactories.createCopyOptions(options);
utils.extendGrunt(grunt, 'grunt-contrib-copy', {
'copy.version': oCopyOptions.version,
});
aTasks.push('copy:version');
}
var oUploaderOptions = optionFactories.createUploaderOptions(options);
utils.extendGrunt(grunt, 'grunt-nwabap-ui5uploader', {
'nwabap_ui5uploader.deploy': oUploaderOptions.deploy,
});
aTasks.push('nwabap_ui5uploader:deploy');
grunt.task.run(aTasks);
});
};