UNPKG

generator-liferay-portlet-template

Version:

Generated liferay portlet is a yeoman generator. This generator make a portlet with a specific configuration.

112 lines (95 loc) 3.55 kB
'use strict'; var yeoman = require('yeoman-generator'); var chalk = require('chalk'); var yosay = require('yosay'); var mkdirp = require('mkdirp'); module.exports = yeoman.generators.Base.extend({ prompting: function () { var done = this.async(); // Have Yeoman greet the user. this.log(yosay( 'Welcome to the praiseworthy ' + chalk.red('generator-liferay-portlet') + ' generator!' )); var prompts = [ ]; this.prompt(prompts, function (props) { this.props = props; // To access props later use this.props.someOption; done(); }.bind(this)); }, writing: function () { var name = this.appname; var nameLowerCase = name.toLowerCase(); var displayName = name; var portletCategory = 'portlet'; var nameFirstLowerCase = name.substring(0,1).toLowerCase() + name.substring(1); var parameters = { name:name, nameLowerCase:nameLowerCase, displayName:displayName, portletCategory:portletCategory, nameFirstLowerCase:nameFirstLowerCase }; this.fs.copyTpl( this.templatePath('pom.xml'), this.destinationPath('pom.xml'), {name:name} ); // Empty folders mkdirp('src/test/java/es/tier/portlet/services'); mkdirp('src/main/resources'); mkdirp('src/main/java/es/tier/portlet/base/preferences'); mkdirp('src/main/java/es/tier/portlet/'+nameLowerCase+'/dto'); mkdirp('src/main/java/es/tier/portlet/'+nameLowerCase+'/acciones/inicio'); // Files in directory this.bulkDirectory('css', 'src/main/webapp/css'); this.bulkDirectory('fonts', 'src/main/webapp/fonts'); this.bulkDirectory('images', 'src/main/webapp/images'); this.bulkDirectory('js', 'src/main/webapp/js'); this.bulkDirectory('preferences', 'src/main/java/es/tier/portlet/base/preferences'); // Individual files this.bulkCopy('indexConfig.jsp', 'src/main/webapp/portlet/jsp/indexConfig.jsp'); this.bulkCopy('Language_en.properties', 'src/main/resources/content/Language_en.properties'); this.bulkCopy('Language_es.properties', 'src/main/resources/content/Language_es.properties'); // Templates this.fs.copyTpl( this.templatePath('index.jsp'), this.destinationPath('src/main/webapp/portlet/jsp/index.jsp'), parameters ); this.fs.copyTpl( this.templatePath('WEB-INF/*'), this.destinationPath('src/main/webapp/WEB-INF'), parameters ); this.fs.copyTpl( this.templatePath('TemplateAjaxServlet.java'), this.destinationPath('src/main/java/es/tier/portlet/ajax/' + name + 'AjaxServlet.java'), parameters ); this.fs.copyTpl( this.templatePath('templateportlet/TemplatePortlet.java'), this.destinationPath('src/main/java/es/tier/portlet/'+nameLowerCase +'/'+name+'.java'), parameters ); this.fs.copyTpl( this.templatePath('templateportlet/acciones/ConfiguracionAccion.java'), this.destinationPath('src/main/java/es/tier/portlet/'+nameLowerCase +'/acciones/ConfiguracionAccion.java'), parameters ); this.fs.copyTpl( this.templatePath('templateportlet/dao/TemplateDAO.java'), this.destinationPath('src/main/java/es/tier/portlet/'+nameLowerCase +'/dao/'+name+'DAO.java'), parameters ); this.fs.copyTpl( this.templatePath('templateportlet/services/TemplateService.java'), this.destinationPath('src/main/java/es/tier/portlet/'+nameLowerCase +'/services/'+name+'Service.java'), parameters ); }, });