UNPKG

generator-joomla-admin-template

Version:
160 lines (146 loc) 4.49 kB
### generator-joomla-admin-template index.coffee @author Sean @note Created on 2014-05-27 by PhpStorm @note uses Codoc @see https://github.com/coffeedoc/codo ### "use strict" util = require("util") path = require("path") yeoman = require("yeoman-generator") yosay = require("yosay") chalk = require("chalk") JoomlaAdminTemplateGenerator = yeoman.generators.Base.extend( init: -> @pkg = require("../package.json") @on "end", -> @installDependencies() unless @options["skip-install"] askFor: -> done = @async() # Have Yeoman greet the user. @log yosay("Welcome to the marvelous JoomlaAdminTemplate generator!") prompts = [ { name: "description" message: "Describe your component" default: "A sample description" } { name: "name" message: "What's the template's name?" default: "default-value" } { name: "authorName" message: "What's your name?" default: "Author name" } { name: "authorEmail" message: "What's your e-mail?" default: "email@somedomain.com" } { name: "authorURL" message: "What's your website?" default: "somedomain.com" } { name: "license" message: "What's the copyright license?" default: "MIT" } { type: "confirm", name: "includejQuery", message: "Use the latest version of jQuery (not joomla's 1.1.11 with migrate)?" } { type: "confirm", name: "includeModernizr", message: "Use modernizr?" } { type: "confirm" name: "sassBoilerplate" message: "Use my sass boilerplate to quickly create base styles? (Otherwise use LESS)" } ] @prompt prompts, ((props) -> @description = props.description @name = props.name @authorName = props.authorName @authorEmail = props.authorEmail @authorURL = props.authorURL @license = props.license @requireManageRights = props.requireManageRights @sassBoilerplate = props.sassBoilerplate @includejQuery = props.includejQuery @includeModernizr = props.includeModernizr @currentDate = (new Date()).toString() done() ).bind(this) app: -> @mkdir "app" @mkdir "app/templates" @template "_package.json", "package.json" @template "_bower.json", "bower.json" projectfiles: -> @copy "editorconfig", ".editorconfig" @copy "jshintrc", ".jshintrc" createLanguageFiles: -> @template "language/en-GB/_en-GB.tpl_template-name.ini", "language/en-GB/en-GB.tpl_" + @_.slugify(@name) + ".ini" @template "language/en-GB/_en-GB.tpl_template-name.sys.ini", "language/en-GB/en-GB.tpl_" + @_.slugify(@name) + ".sys.ini" createTemplateInfoFiles: -> @template "_templateDetails.xml", "templateDetails.xml" createRootPHPFiles: -> @template "_index.php", "index.php" @template "_component.php", "component.php" @template "_error.php", "error.php" @template "_layout-helpers.php", "layout-helpers.php" @template "_cpanel.php", "cpanel.php" @template "_login.php", "login.php" createBrowserFiles: -> files = [ "tile.png" "tile-wide.png" "crossdomain.xml" "browserconfig.xml" "favicon.ico" "apple-touch-icon-precomposed.png" "template_preview.png" "template_thumbnail.png" ] for file in files @copy file, file createEmptyFolders: -> folders = [ "scripts" "styles" "styles/css" "language" "language/en-GB" "html" "bower_components" ] folders.forEach (folderName) => @mkdir folderName @template "_index.html", folderName + "/index.html" createStyles: -> switch (@sassBoilerplate) when true @template "styles/sass/template.scss", "styles/sass/template.scss" @template "styles/sass/template-rtl.scss", "styles/sass/template-rtl.scss" @template "styles/sass/helpers/_icons.scss", "styles/sass/helpers/_icons.scss" @copy "config.rb", "config.rb" else @template "styles/less/template.less", "styles/less/template.less" @template "styles/less/template-rtl.less", "styles/less/template-rtl.less" @template "styles/less/helpers/icomoon.less", "styles/less/helpers/icomoon.less" @template "styles/less/helpers/variables.less", "styles/less/helpers/variables.less" @copy "styles/css/template.css", "styles/css/template.css" @copy "styles/css/template-rtl.css", "styles/css/template-rtl.css" ) module.exports = JoomlaAdminTemplateGenerator