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
JavaScript
'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
);
},
});