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.

151 lines (117 loc) 3.56 kB
'use strict'; var yeoman = require('yeoman-generator'), fs = require('fs'), path = require('path'), mkdirp = require('mkdirp'), jsonfile = require('jsonfile'), generatorName = path.basename(__dirname); var greeting = require('../app/helpers/greeting'), printTitle = require('../app/helpers/printTitle'), hasFeature = require('../app/helpers/hasFeature'), createJson = require('../app/helpers/createJson'); var init = require('../app/config/init'), setConfigVars = require('../app/config/setConfigVars'), setConfigFiles = require('../app/config/setConfigFiles'), writeBower = require('../app/config/writeBower'), installDep = require('../app/config/installDep'), copyFiles = require('../app/config/copyFiles'), setJSAnswers = require('../app/config/setJSAnswers'); var structureExistsPrompt = require('../app/prompts/structureExistsPrompt'), gulpPrompt = require('../app/prompts/gulpPrompt'), structurePrompt = require('../app/prompts/structurePrompt'), javascriptPrompt = require('../app/prompts/javascriptPrompt'), javascriptLibsPrompt = require('../app/prompts/javascriptLibsPrompt'); var dirsToCheck = ['mainDir', 'assetsDir', 'jsDir', 'libDir']; module.exports = yeoman.Base.extend({ initializing: function(){ var done = this.async(), self = this; init(this, function(){ greeting(self); done(); }); }, prompting: { gulp: function(){ if(this.exit) return; 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 && !this.continueStructure) { structurePrompt(this, dirsToCheck, function(){ done(); }) } else { done(); } }, javascript: function(){ if(this.exit) return; var done = this.async(); javascriptPrompt(this, function(){ done(); }) }, javascriptLibs: function(){ if(this.exit) return; var done = this.async(); javascriptLibsPrompt(this, function(){ done(); }) }, }, configuring: { answers: function(){ if(this.exit) return; var done = this.async(); setJSAnswers(this, function(){ done(); }); }, config: function(){ if(this.exit) return; var done = this.async(); setConfigFiles(this, function(){ done(); }); }, setbower: function(){ if(this.exit) return; var done = this.async(); writeBower(this, function(){ done(); }); } }, writing: function(){ if(this.exit) return; var done = this.async(), destRoot = this.destinationRoot(), gulpRoot = destRoot, sourceRoot = this.sourceRoot(); if(this.cfg.gulpDirOption) gulpRoot = path.join(destRoot,'gulp') copyFiles.copyJsFiles(this, destRoot, gulpRoot, sourceRoot, function(){ done(); }); }, install: function(){ if(this.exit) return; if(!this.calledFrom) { var done = this.async(); installDep(this); done(); } } });