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.
138 lines (130 loc) • 3.36 kB
JavaScript
var chalk = require('chalk'),
printTitle = require('../helpers/printTitle'),
hasFeature = require('../helpers/hasFeature');
;
var structurePrompt = function(self, dirs, cb){
console.log(printTitle('Folder structure'));
self.prompt([{
when: function(){
return !self.cfg.mainDir && hasFeature('mainDir', dirs)
},
name: 'mainDir',
message: 'What is your main directory?',
default: function(answers) {
if(self.cfg.mainDir) {
return self.cfg.mainDir
} else {
return 'website'
}
}
}, {
when: function(){
return !self.cfg.themeDir && (self.cfg.environmentOption === 'wordpress' || self.cfg.environmentOption === 'drupal') && hasFeature('themeDir', dirs)
},
name: 'themeDir',
message: 'What is your theme folder?',
default: function(answers) {
if(self.cfg.themeDir) {
return self.cfg.themeDir
} else {
return 'mytheme'
}
}
}, {
when: function(){
return hasFeature('assetsDir', dirs)
},
name: 'assetsDir',
message: 'Name your assets folder:',
default: function(answers) {
if(self.cfg.assetsDir) {
return self.cfg.assetsDir
} else {
return 'assets'
}
}
}, {
when: function(){
return hasFeature('cssDir', dirs)
},
type: 'input',
name: 'cssDir',
message: 'Name your css directory:',
default: function(answers) {
if(self.cfg.cssDir) {
return self.cfg.cssDir
} else {
return 'css'
}
}
}, {
when: function(){
return hasFeature('imgDir', dirs)
},
type: 'input',
name: 'imgDir',
message: 'Name your images directory:',
default: function(answers) {
if(self.cfg.imgDir) {
return self.cfg.imgDir
} else {
return 'img'
}
}
}, {
when: function(){
return hasFeature('jsDir', dirs)
},
type: 'input',
name: 'jsDir',
message: 'Name your javascript directory:',
default: function(answers) {
if(self.cfg.jsDir) {
return self.cfg.jsDir
} else {
return 'js'
}
}
}, {
when: function(){
return hasFeature('libDir', dirs)
},
type: 'input',
name: 'libDir',
message: 'Name your javascript library directory:',
default: function(answers) {
if(self.cfg.libDir) {
return self.cfg.libDir
} else {
return 'lib'
}
}
}, {
when: function(){
return hasFeature('fontDir', dirs)
},
type: 'input',
name: 'fontDir',
message: 'Name your fonts directory:',
default: function(answers) {
if(self.cfg.fontDir) {
return self.cfg.fontDir
} else {
return 'fonts'
}
}
}], function (answers) {
if(!self.cfg.mainDir) self.cfg.mainDir = answers.mainDir;
if(!self.cfg.themeDir && (self.cfg.environmentOption === 'wordpress' || self.cfg.environmentOption === 'drupal')) {
self.cfg.themeDir = answers.themeDir;
}
self.cfg.assetsDir = answers.assetsDir;
self.cfg.cssDir = answers.cssDir;
self.cfg.imgDir = answers.imgDir;
self.cfg.jsDir = answers.jsDir;
self.cfg.libDir = answers.libDir;
self.cfg.fontDir = answers.fontDir;
cb();
}.bind(self));
}
module.exports = structurePrompt;