UNPKG

generator-robonkey

Version:

A Yeoman generator for Gulp, Templating, CSS Preprocessors, Coffeescript, PostCSS, Modernizr, svg icons/icon font generator, BrowserSync, and some libraries to choose from. Express, Wordpress, Drupal, CodeIgniter, Laravel subgenerators are available.

149 lines (114 loc) 3.41 kB
'use strict'; var yeoman = require('yeoman-generator'), fs = require('fs'), path = require('path'), chalk = require('chalk'), mkdirp = require('mkdirp'), jsonfile = require('jsonfile'), generatorName = path.basename(__dirname); var greeting = require('../app/helpers/greeting'), printTitle = require('../app/helpers/printTitle'); var init = require('../app/config/init'), setConfigVars = require('../app/config/setConfigVars'), setConfigFiles = require('../app/config/setConfigFiles'), installDep = require('../app/config/installDep'), copyFiles = require('../app/config/copyFiles'), setIconsAnswers = require('../app/config/setIconsAnswers'); var structureExistsPrompt = require('../app/prompts/structureExistsPrompt'), gulpPrompt = require('../app/prompts/gulpPrompt'), structurePrompt = require('../app/prompts/structurePrompt'), iconsPrompt = require('../app/prompts/iconsPrompt'); var dirsToCheck = ['mainDir', 'assetsDir', 'fontDir']; module.exports = yeoman.Base.extend({ initializing: function(){ var done = this.async(), self = this; init(this, function(){ greeting(self); done(); }); }, prompting: { gulp: function(){ var done = this.async(); gulpPrompt(this, function(){ done(); }) }, // existingStructure: function(){ // if(this.exit) return; // var done = this.async(); // structureExistsPrompt(this, dirsToCheck, function(){ // done(); // }) // }, structure: function(){ if(this.exit) return; var done = this.async(); if(!this.calledFrom){ structurePrompt(this, dirsToCheck, function(){ done(); }) } else { done(); } }, iconstype: function(){ if(this.exit) return; var done = this.async(), self = this; iconsPrompt(this, function(){ done(); }) }, preprocessors: function(){ if(this.exit) return; var done = this.async(); if(!this.calledFrom && this.cfg.customIconfontOption){ preprocessorsPrompt(this, function(){ done(); }) } else { done(); } } }, configuring: { answers: function(){ if(this.exit) return; var done = this.async(); setIconsAnswers(this, function(){ done(); }); }, config: function(){ if(this.exit) return; var done = this.async(); setConfigFiles(this, function(){ done(); }); }, }, writing: function(){ if(this.exit) return; var done = this.async(), self = this, destRoot = this.destinationRoot(), gulpRoot = destRoot, sourceRoot = this.sourceRoot(); if(this.cfg.gulpDirOption) gulpRoot = path.join(destRoot,'gulp') copyFiles.copyIconFontFiles(this, destRoot, gulpRoot, sourceRoot, function(){ copyFiles.copySvgIconsFiles(self, destRoot, gulpRoot, sourceRoot, function(){ done(); }); }); }, install: function(){ if(this.exit) return; if(!this.calledFrom){ var done = this.async(); installDep(this); done(); } } });