generator-joomla-spc
Version:
Joomla-spc generator for Yeoman. Creates Joomla 2.5 and 3.0 files
921 lines (866 loc) • 33 kB
text/coffeescript
# global inquirer ###
# global chalk ###
# global yosay ###
# global mkdirp ###
###
generator-joomla-spc
v0.1.3
added selection of component levels basic, intermediate, advanced
v0.1.2
added selection of plugin group
###
'use strict'
# coffeelint: disable=max_line_length
(->
Generator = undefined
config = undefined
exec = undefined
fs = undefined
path = undefined
rimraf = undefined
semver = undefined
util = undefined
yeoman = undefined
# Generator = (args, options) ->
Generator = () ->
yeoman.generators.Base.apply this, arguments
= Object.create(null)
path.join(__dirname, 'templates')
.installDependencies = false
return
# 'use strict'
util = require('util')
path = require('path')
fs = require('fs')
# mkdirp = require('mkdirp');
yeoman = require('yeoman-generator')
#globalconfig = require('global-config.js');
yosay = require('yosay')
updateNotifier = require('update-notifier')
stringLength = require('string-length')
pkg = require('../package.json')
chalk = require('chalk')
inquirer = require('inquirer')
ucfirst = require('ucfirst')
rimraf = require('rimraf')
exec = require('child_process').exec
semver = require('semver')
config = require('../configuserglobal.js')
module.exports = Generator
util.inherits Generator, yeoman.generators.NamedBase
###
# 1000 * 60 * 60 * 24; // 1 day
# 1000 * 60 * 60 * 24 * 7 // 1 week
###
Generator::updateCheck = ->
notifier = updateNotifier(pkg: pkg, updateCheckInterval: 1000 * 60 * 60 * 24)
message = []
# console.log('notifier:', notifier.update)
if notifier.update
message.push 'Update available: ' + chalk.green.bold(notifier.update.latest) + chalk.gray(' (current: ' + notifier.update.current + ')')
message.push 'Run ' + chalk.magenta('npm install -g yo ' + pkg.name) + ' to update.'
message.push('\n' + chalk.white.bold('Recommend updating ') + chalk.green.bold(pkg.name) + chalk.white.bold(' before continuing.'))
console.log yosay(message.join(' '), maxLength: stringLength(message[0]))
return
Generator::startGenerator = ->
yosay(chalk.white('Welcome to the SPC Joomla Extension generator!') + chalk.white('\nVersion ') + chalk.white.bold(pkg.version))
return
Generator::askForType = ->
done =
{
type: 'list'
name: 'type'
message: 'What type of extension do you want to create?'
choices: [
{
name: 'Component'
value: 'ext-com'
}
{
name: 'Plug-in'
value: 'ext-plg'
}
{
name: 'Template Front End'
value: 'ext-tpl'
}
{
name: 'Template Admin'
value: 'ext-tpladmin'
}
{
name: 'Module'
value: 'ext-mod'
}
]
}, ((typeAnswer) ->
.type = typeAnswer.type
# console.log("type = ", this.generator.type)
done()
return
).bind(this)
return
#globalconfig.getall;
#console.log("got info:", data )
Generator::getConfig = ->
cb = undefined
self = undefined
cb =
self = this
self.configExists = false
#globalconfig.getall(function (err, data) {
config.getConfig (err, data) ->
if !err
self.configExists = true
self.defaultAuthorName = data.authorName
self.defaultAuthorURL = data.authorURL
self.defaultAuthorEmail = data.authorEmail
self.latestVersion = data.latestVersion
cb()
return
return
Generator::askFor = ->
cb = undefined
prompts = undefined
self = undefined
cb =
self = this
switch .type
when 'ext-com'
# console.log("in switch", this.generator.type)
prompts = [
{
type: 'list'
name: 'componentComGroup'
message: 'What\'s the Component level?'
choices: [
{
name: 'Basic'
value: 'basic'
}
{
name: 'Intermediate'
value: 'intermediate'
}
{
name: 'Advanced'
value: 'advanced'
}
]
}
{
name: 'description'
message: 'Describe your component'
'default': 'A sample description'
}
{
name: 'componentName'
message: 'What\'s the component\'s name?'
'default': 'defaultcomponentvalue'
}
{
name: 'authorName'
message: 'What\'s your name?'
'default': self.defaultAuthorName
}
{
name: 'authorEmail'
message: 'What\'s your e-mail?'
'default': self.defaultAuthorEmail
}
{
name: 'authorURL'
message: 'What\'s your website?'
'default': self.defaultAuthorURL
}
{
name: 'versionno'
message: 'What\'s the version number?'
'default': '1.0.0'
}
{
name: 'license'
message: 'What\'s the copyright license?'
'default': 'MIT'
}
{
type: 'confirm'
name: 'requireManageRights'
message: 'Does your component require admin manage rights to access it?'
}
{
type: 'confirm'
name: 'legacyJoomla'
message: 'Support Joomla 2.5x with compatibility layer?'
}
]
when 'ext-plg'
# console.log("in switch", this.generator.type)
prompts = [
{
type: 'list'
name: 'componentGroup'
message: 'What\'s the plugin\'s Group?'
choices: [
{
name: 'Content'
value: 'content'
}
{
name: 'Extension'
value: 'extension'
}
{
name: 'Authentication'
value: 'authentication'
}
{
name: 'Captcha'
value: 'captcha'
}
{
name: 'Editors'
value: 'editors'
}
{
name: 'Editors-XTD'
value: 'editors-xtd'
}
{
name: 'Quick-Icons'
value: 'quick-icons'
}
{
name: 'Search'
value: 'search'
}
{
name: 'Smart Search (Finder)'
value: 'smart-search'
}
{
name: 'System'
value: 'system'
}
{
name: 'Two Factor Auth'
value: 'twofactorauth'
}
{
name: 'User'
value: 'user'
}
]
}
{
name: 'description'
message: 'Describe your plugin'
'default': 'A sample description'
}
{
name: 'componentName'
message: 'What\'s the plugin\'s name?'
'default': 'defaultplugin-value'
}
{
name: 'authorName'
message: 'What\'s your name?'
'default': self.defaultAuthorName
}
{
name: 'authorEmail'
message: 'What\'s your e-mail?'
'default': self.defaultAuthorEmail
}
{
name: 'authorURL'
message: 'What\'s your website?'
'default': self.defaultAuthorURL
}
{
name: 'versionno'
message: 'What\'s the version number?'
'default': '1.0.0'
}
{
name: 'license'
message: 'What\'s the copyright license?'
'default': 'MIT'
}
]
# end of prompts
when 'ext-tpl'
console.log 'in switch', .type
prompts = [
{
name: 'description'
message: 'Describe your template'
'default': 'A sample description'
}
{
name: 'componentName'
message: 'What\'s the template\'s name?'
'default': 'default-template-value'
}
{
name: 'authorName'
message: 'What\'s your name?'
'default': self.defaultAuthorName
}
{
name: 'authorEmail'
message: 'What\'s your e-mail?'
'default': self.defaultAuthorEmail
}
{
name: 'authorURL'
message: 'What\'s your website?'
'default': self.defaultAuthorURL
}
{
name: 'versionno'
message: 'What\'s the version number?'
'default': '1.0.0'
}
{
name: 'license'
message: 'What\'s the copyright license?'
'default': 'MIT'
}
]
when 'ext-tpladmin'
console.log 'in switch', .type
prompts = [
{
name: 'description'
message: 'Describe your Admin template'
'default': 'A sample description'
}
{
name: 'componentName'
message: 'What\'s the Admin template\'s name?'
'default': 'default-Admin-template-value'
}
{
name: 'authorName'
message: 'What\'s your name?'
'default': self.defaultAuthorName
}
{
name: 'authorEmail'
message: 'What\'s your e-mail?'
'default': self.defaultAuthorEmail
}
{
name: 'authorURL'
message: 'What\'s your website?'
'default': self.defaultAuthorURL
}
{
name: 'versionno'
message: 'What\'s the version number?'
'default': '1.0.0'
}
{
name: 'license'
message: 'What\'s the copyright license?'
'default': 'MIT'
}
]
when 'ext-mod'
console.log 'in switch', .type
prompts = [
{
name: 'description'
message: 'Describe your Module'
'default': 'A sample description'
}
{
name: 'componentName'
message: 'What\'s the Module\'s name?'
'default': 'default-Module-value'
}
{
name: 'authorName'
message: 'What\'s your name?'
'default': self.defaultAuthorName
}
{
name: 'authorEmail'
message: 'What\'s your e-mail?'
'default': self.defaultAuthorEmail
}
{
name: 'authorURL'
message: 'What\'s your website?'
'default': self.defaultAuthorURL
}
{
name: 'versionno'
message: 'What\'s the version number?'
'default': '1.0.0'
}
{
name: 'license'
message: 'What\'s the copyright license?'
'default': 'MIT'
}
]
else
#unknown project type
break
prompts, ((props) ->
values = undefined
#var str = props.componentGroup;
= props.description
= props.componentName
= props.componentGroup
= props.componentComGroup
= props.authorName
= props.authorEmail
= props.authorURL
= props.versionno
= props.license
= props.requireManageRights
= props.legacyJoomla
=
=
# Transformations
# this.data.unprefixedName = nameParts.slice(1).join('_');
# = .toUpperCase()
# = ucfirst()
# = .toLowerCase()
#console.log 'nameUppercase = ',
#console.log 'nameCamelcase = ',
#console.log 'nameLowercase = ',
if !self.configExists
values =
authorName: self.authorName
authorURL: self.authorURL
authorEmail: self.authorEmail
versionno: self.versionno
config.createConfig values, cb
else
cb()
).bind(this)
return
###
#
# Write files
#
###
Generator::writing = ->
# var this.dest.root = this.destionationroot();
# var appdir = this.dest.root + '/app';
#
###
# set the template root to templates/[typename]
###
path.join(__dirname, './templates/' + .type)
switch .type
when 'ext-com'
###
# this.generator.installDependencies = true;
# .installDependencies = true
###
.installDependencies = true
switch
when 'basic'
console.log 'componentComGroup basic'
path.join(__dirname, './templates/' + .type + '-' + )
# console.log('componentComGroup this.sourceRoot', this.sourceRoot);
when 'intermediate'
path.join(__dirname, './templates/' + .type + '-' + )
when 'advanced'
path.join(__dirname, './templates/' + .type + '-' + )
else
###
# unknown project type
###
break
# break of case: ext-com
when 'ext-plg'
.installDependencies = true
when 'ext-tpl'
.installDependencies = true
when 'ext-tpladmin'
.installDependencies = true
when 'ext-mod'
.installDependencies = true
else
### unknown project type ###
break
return
###
# files for extension type Com - basic
###
Generator::_wcom = ->
done =
# var files = this.expandFiles('**', {dot: true, cwd: root});
console.log '_wcom function'
# this._createLegacyFallbackFiles();
#this.template('_package.json', 'package.json'); // handled in _common
###
# files are located in templates/ext-com-basic
# Admin files
###
'admin/helpers/_component-name.php', 'app/admin/helpers/' + .slugify() + '.php'
'admin/language/en-GB/_en-GB.com_component-name.ini', 'app/admin/' + 'language/en-GB/en-GB.com_' + .slugify() + '.ini'
'admin/language/en-GB/_en-GB.com_component-name.sys.ini', 'app/admin/' + 'language/en-GB/en-GB.com_' + .slugify() + '.sys.ini'
'admin/libraries/_component-name.php', 'app/admin/libraries/' + .slugify() + '.php'
'admin/libraries/_component-name.php', 'app/admin/libraries/' + .slugify() + '.php'
'admin/libraries/_ziparchive.php', 'app/admin/libraries/' + 'ziparchive' + '.php'
'admin/models/_gallery.php', 'app/admin/models/' + 'gallery' + '.php'
'admin/views/gallery/tmpl/default.php', 'app/admin/views/gallery/tmpl/' + 'default.php'
'admin/views/gallery/view.html.php', 'app/admin/views/gallery/' + '/view.html.php'
'admin/_component-name.php', 'app/admin/' + .slugify() + '.php'
'admin/_access.xml', 'app/admin/' + 'access.xml'
'admin/_config.xml', 'app/admin/' + 'config.xml'
'admin/controller.php', 'app/admin/' + 'controller.php'
'admin/releasenotes.txt', 'app/admin/' + 'releasenotes.txt'
###
# Site files
###
'site/helpers/route.php', 'app/site/helpers/' + 'route' + '.php'
'site/language/en-GB/en-GB.com_component-name.ini', 'app/site/' + 'language/en-GB/en-GB.com_' + .slugify() + '.ini'
'site/lib', 'app/site/lib'
'site/models/gallery.php', 'app/site/models/' + 'gallery' + '.php'
'site/views/gallery/tmpl/default.php', 'app/site/views/gallery/tmpl/' + '/default.php'
'site/views/gallery/tmpl/default.xml', 'app/site/views/gallery/tmpl/' + '/default.xml'
'site/views/gallery/view.html.php', 'app/site/views/gallery/' + 'view.html.php'
'site/_component-name.php', 'app/site/' + .slugify() + '.php'
'site/controller.php', 'app/site/' + 'controller.php'
'site/router.php', 'app/site/' + 'router.php'
'_component-name.xml', 'app/' + .slugify() + '.xml'
'script.php', 'app/' + 'script.php'
'media/images/_component-name_menu.png', 'app/media/images/' + .slugify() + '_menu.png'
'media/images/_component-name_toolbar.png', 'app/media/images/' + .slugify() + '_toolbar.png'
#this._install();
'_Gruntfile.js', 'Gruntfile.js'
done()
return
###
# files for extension type Com-intermediate
###
Generator::_wcomInt = ->
done =
# var files = this.expandFiles('**', {dot: true, cwd: root});
# console.log '_wcomint function'
# this._createLegacyFallbackFiles();
#this.template('_package.json', 'package.json'); // handled in _common
###
# files are located in templates/ext-com-intermediate
# Admin files
###
'admin/controllers/_component-name.php', 'app/admin/controllers/' + .slugify() + '.php'
'admin/controllers/_component-names.php', 'app/admin/controllers/' + .slugify() + 's' + '.php'
'admin/helpers/_component-name.php', 'app/admin/helpers/' + .slugify() + '.php'
'admin/language/en-GB/_en-GB.com_component-name.ini', 'app/admin/' + 'language/en-GB/en-GB.com_' + .slugify() + '.ini'
'admin/language/en-GB/_en-GB.com_component-name.sys.ini', 'app/admin/' + 'language/en-GB/en-GB.com_' + .slugify() + '.sys.ini'
'admin/models/fields/_component-name.php', 'app/admin/models/fields/' + .slugify() + '.php'
'admin/models/forms/_component-name.js', 'app/admin/models/forms/' + .slugify() + '.js'
'admin/models/forms/_component-name.xml', 'app/admin/models/forms/' + .slugify() + '.xml'
'admin/models/forms/_filter_component-name.xml', 'app/admin/models/forms/filter' + .slugify() + '.xml'
'admin/models/rules/greeting.php', 'app/admin/models/rules/' + 'greeting.php'
'admin/models/_component-name.php', 'app/admin/models/' + .slugify() + '.php'
'admin/models/_component-names.php', 'app/admin/models/' + .slugify() + 's' + '.php'
'admin/tables/_component-name.php', 'app/admin/tables/' + .slugify() + '.php'
'admin/views/_component-name/tmpl/edit.php', 'app/admin/views/' + .slugify() + '/tmpl/' + 'edit.php'
'admin/views/_component-name/submitbutton.js', 'app/admin/views/' + .slugify() + '/submitbutton.js'
'admin/views/_component-name/view.html.php', 'app/admin/views/' + .slugify() + '/view.html.php'
'admin/views/_component-names/tmpl/default.php', 'app/admin/views/' + .slugify() + 's' + '/tmpl/' + 'default.php'
'admin/views/_component-names/view.html.php', 'app/admin/views/' + .slugify() + 's' + '/view.html.php'
'admin/_component-name.php', 'app/admin/' + .slugify() + '.php'
'admin/_access.xml', 'app/admin/' + 'access.xml'
'admin/_config.xml', 'app/admin/' + 'config.xml'
'admin/controller.php', 'app/admin/' + 'controller.php'
# 'admin/releasenotes.txt', 'app/admin/' + 'releasenotes.txt'
###
# Site files
###
'site/language/en-GB/en-GB.com_component-name.ini', 'app/site/' + 'language/en-GB/en-GB.com_' + .slugify() + '.ini'
'site/models/_component-name.php', 'app/site/models/' + .slugify() + '.php'
'site/views/_component-name/tmpl/default.php', 'app/site/views/' + .slugify() + '/tmpl/' + 'default.php'
'site/views/_component-name/tmpl/default.xml', 'app/site/views/' + .slugify() + '/tmpl/' + 'default.xml'
'site/views/_component-name/view.html.php', 'app/site/views/' + .slugify() + '/view.html.php'
# 'site/views/controller.php', 'app/site/views/' + 'controller' + '.php'
'site/_component-name.php', 'app/site/' + .slugify() + '.php'
'site/controller.php', 'app/site/' + 'controller.php'
# 'site/router.php', 'app/site/' + 'router.php'
'_component-name.xml', 'app/' + .slugify() + '.xml'
'script.php', 'app/' + 'script.php'
# 'media/images/_component-name_menu.png', 'app/media/images/' + .slugify() + '_menu.png'
# 'media/images/_component-name_toolbar.png', 'app/media/images/' + .slugify() + '_toolbar.png'
#this._install();
'_Gruntfile.js', 'Gruntfile.js'
'media', 'app/media'
'admin/sql/updates/', 'app/admin/sql/updates/'
done()
return
###
# files for extension type Com - advanced
###
Generator::_wcomAdv = ->
done =
# var files = this.expandFiles('**', {dot: true, cwd: root});
# console.log("_wcom function");
# this._createLegacyFallbackFiles();
#this.template('_package.json', 'package.json'); // handled in _common
###
# files are located in templates/ext-com-advanced
# Admin files
###
'admin/helpers/_component-name.php', 'app/admin/helpers/' + .slugify() + '.php'
'admin/language/en-GB/_en-GB.com_component-name.ini', 'app/admin/' + 'language/en-GB/en-GB.com_' + .slugify() + '.ini'
'admin/language/en-GB/_en-GB.com_component-name.sys.ini', 'app/admin/' + 'language/en-GB/en-GB.com_' + .slugify() + '.sys.ini'
'admin/libraries/_component-name.php', 'app/admin/libraries/' + .slugify() + '.php'
'admin/libraries/_component-name.php', 'app/admin/libraries/' + .slugify() + '.php'
'admin/libraries/_ziparchive.php', 'app/admin/libraries/' + 'ziparchive' + '.php'
'admin/models/_gallery.php', 'app/admin/models/' + 'gallery' + '.php'
'admin/views/gallery/tmpl/default.php', 'app/admin/views/gallery/tmpl/' + 'default.php'
'admin/views/gallery/view.html.php', 'app/admin/views/gallery/' + '/view.html.php'
'admin/_component-name.php', 'app/admin/' + .slugify() + '.php'
'admin/_access.xml', 'app/admin/' + 'access.xml'
'admin/_config.xml', 'app/admin/' + 'config.xml'
'admin/controller.php', 'app/admin/' + 'controller.php'
'admin/releasenotes.txt', 'app/admin/' + 'releasenotes.txt'
###
# Site files
###
'site/helpers/route.php', 'app/site/helpers/' + 'route' + '.php'
'site/language/en-GB/en-GB.com_component-name.ini', 'app/site/' + 'language/en-GB/en-GB.com_' + .slugify() + '.ini'
'site/lib', 'app/site/lib'
'site/models/gallery.php', 'app/site/models/' + 'gallery' + '.php'
'site/views/gallery/tmpl/default.php', 'app/site/views/gallery/tmpl/' + '/default.php'
'site/views/gallery/tmpl/default.xml', 'app/site/views/gallery/tmpl/' + '/default.xml'
'site/views/gallery/view.html.php', 'app/site/views/gallery/' + 'view.html.php'
'site/_component-name.php', 'app/site/' + .slugify() + '.php'
'site/controller.php', 'app/site/' + 'controller.php'
'site/router.php', 'app/site/' + 'router.php'
'_component-name.xml', 'app/' + .slugify() + '.xml'
'script.php', 'app/' + 'script.php'
'media/images/_component-name_menu.png', 'app/media/images/' + .slugify() + '_menu.png'
'media/images/_component-name_toolbar.png', 'app/media/images/' + .slugify() + '_toolbar.png'
#this._install();
'_Gruntfile.js', 'Gruntfile.js'
done()
return
###
# files for extension type Plg
# files are located in templates/ext-plg
###
Generator::_writingPlg = ->
done =
pluginfolder = 'plg_' + .slugify() + '_' + .slugify() + '/'
console.log 'pluginfolder = ', pluginfolder
'_Gruntfile.js', 'Gruntfile.js'
# this.template('_component-name.xml', 'app/' + this._.slugify(this.componentName) + '.xml');
'_plugin-name.xml', 'app/' + pluginfolder + .slugify() + '.xml'
'language/en-GB/_en-GB.com_component-name.ini', 'app/' + pluginfolder + 'language/en-GB/en-GB.plg_' + .slugify() + '.ini'
'language/en-GB/_en-GB.com_component-name.sys.ini', 'app/' + pluginfolder + 'language/en-GB/en-GB.plg_' + .slugify() + '.sys.ini'
'_plugin-name.php', 'app/' + pluginfolder + .slugify() + '.php'
# console.log("_writingPlg function");
'_index.html', 'app/' + pluginfolder + '/index.html'
'_index.html', 'app/' + pluginfolder + 'language/' + '/index.html'
'_index.html', 'app/' + pluginfolder + 'language/en-GB/' + '/index.html'
done()
return
###
# files for extension type Tpl
###
Generator::_writingTpl = ->
done =
console.log '_writingTpl function'
done()
return
###
# files for extension type Tpladmin
###
Generator::_writingTpladmin = ->
done =
console.log '_writingTpladmin function'
done()
return
###
# files for extension type Mod
###
Generator::_writingMod = ->
done =
console.log '_writingMod function'
done()
return
Generator::_common = ->
'_package.json', 'package.json'
# this.copy('_Gruntfile.js', 'Gruntfile.js');
'../USAGE', 'USAGE'
'_bower.json', 'bower.json'
'_gitignore', '.gitignore'
Generator::_getCurrentDate = ->
dd = undefined
mm = undefined
today = undefined
yyyy = undefined
dd = undefined
mm = undefined
today = undefined
yyyy = undefined
today = new Date()
dd = today.getDate()
mm =
yyyy = today.getFullYear()
if dd < 10
dd = '0' + dd
if mm < 10
mm = '0' + mm
today = dd + '-' + mm + '-' + yyyy
return today
Generator::_getCurrentMonthName = ->
d = undefined
month = undefined
n = undefined
d = undefined
month = undefined
n = undefined
d = new Date()
month = []
month[0] = 'January'
month[1] = 'February'
month[2] = 'March'
month[3] = 'April'
month[4] = 'May'
month[5] = 'June'
month[6] = 'July'
month[7] = 'August'
month[8] = 'September'
month[9] = 'October'
month[10] = 'November'
month[11] = 'December'
n = month[d.getMonth()]
return n
Generator::_getCurrentYear = ->
today = undefined
year = undefined
yyyy = undefined
today = undefined
year = undefined
yyyy = undefined
today = new Date()
yyyy = today.getFullYear()
year = yyyy
return year
Generator::_projectfiles = ->
'editorconfig', '.editorconfig'
'jshintrc', '.jshintrc'
#Generator::_createConfigFiles = ->
#this.template('_component-name.xml', 'app/' + this._.slugify(this.componentName) + '.xml');
# this.template('_config.xml', 'app/' + 'config.xml');
# this.template('_access.xml', 'app/' + 'access.xml');
# return
###
# Create legacy files for fallback to Joomla 2.5x
###
# Generator.prototype._createLegacyFallbackFiles = function () {
# if (this.legacyJoomla === true) {
# return this.template('_legacy.php', 'app/' + 'legacy.php');
# }
# };
# Generator.prototype._createPHPFiles = function () {
# this.template('_component-name.php', 'app/' + this._.slugify(this.componentName) + '.php');
# return this.template('_router.php', 'app/' + 'router.php');
# };
# Generator.prototype._createDatabaseFiles = function () {
# this.template('sql/_install.mysql.utf8.sql', 'app/' + 'sql/install.mysql.utf8.sql');
# this.template('sql/_uninstall.mysql.utf8.sql', 'app/' + 'sql/uninstall.mysql.utf8.sql');
# return this.template('_install-uninstall.php', 'app/' + 'install-uninstall.php');
# };
# Generator.prototype._createLanguageFiles = function () {
# this.template('language/en-GB/_en-GB.com_component-name.ini', 'app/' + 'language/en-GB/en-GB.com_' + this._.slugify(this.componentName) + '.ini');
# return this.template('language/en-GB/_en-GB.com_component-name.ini', 'app/' + 'language/en-GB/en-GB.com_' + this._.slugify(this.componentName) + '.sys.ini');
# };
Generator::_createEmptyMVCFolders = ->
emptyMVCFolders = undefined
folderName = undefined
i = undefined
len = undefined
emptyMVCFolders = undefined
folderName = undefined
i = undefined
len = undefined
emptyMVCFolders = [
'app/admin/'
'app/site/'
'app/admin/' + 'controllers'
'app/site/' + 'controllers'
'app/admin/' + 'language'
'app/site/' + 'language'
'app/admin/' + 'language/en-GB/'
'app/site/' + 'language/en-GB/'
'app/admin/' + 'helpers'
'app/site/' + 'helpers'
'app/' + 'media'
'app/' + 'media/images/'
'app/admin/' + 'models'
'app/site/' + 'models'
'app/admin/' + 'models/fields/'
'app/site/' + 'models/fields/'
'app/admin/' + 'models/forms/'
'app/site/' + 'models/forms/'
'app/admin/' + 'models/rules/'
'app/site/' + 'models/rules/'
'app/admin/' + 'sql'
'app/site/' + 'sql'
'app/admin/' + 'sql/updates/'
'app/site/' + 'sql/updates/'
'app/admin/' + 'tables'
'app/site/' + 'tables'
'app/admin/' + 'views'
'app/site/' + 'views'
]
i = 0
len = emptyMVCFolders.length
while i < len
folderName = emptyMVCFolders[i]
'_index.html', folderName + '/index.html'
i++
'_index.html', 'app/' + 'index.html'
###
# Installation
###
Generator::install = ->
if .installDependencies
npm: true
bower: false
return
Generator::end = ->
''
chalk.white('Your extension ' + chalk.yellow.bold() + chalk.white(' has been created!'))
''
chalk.white('Go here to download and install bitnami joomla for your system ' + chalk.cyan('https://bitnami.com/stack/joomla'))
chalk.white('=================================')
''
chalk.white('To get a list of sub-generators type the following:')
chalk.white('yo joomla-spc --help')
# this.log.writeln('');
# this.log.writeln('Looks like we\'re done!');
# this.log.writeln('');
# '\ud\n'
return
return
).call this
# ---
# generated by js2coffee 2.1.0