gulp.task('default', function (done) { inquirer.prompt([ { type: 'input', name: 'name', message: 'Application name?', default: gulp.args.join(' ')}, { type: 'confirm', name: 'moveon', message: 'Continue?'} ], function (answers) { if (!answers.moveon) { return done(); } answers.appNameSlug = _.slugify(answers.appName); gulp.src(__dirname + '/templates/**') .pipe(template(answers)) .pipe(rename(function (file) { if (file.basename[0] === '_') { file.basename = '.' + file.basename.slice(1); } })) .pipe(conflict('./')) .pipe(gulp.dest('./')) .pipe(install()) .on('end', function () { done(); }); }); });
gulp.task('default', function (done) { var prompts = [{ type: 'input', name: 'modelName', message: 'What is the name of your model?', default: gulp.args.join(' ') }, { type: 'input', name: 'modelAttributes', message: 'What attributes does your model have?', default: gulp.args.join(' '), filter: function(attrs) { var array = attrs.split(' '); array = array.map(function(item) { console.log(item); var attr = item.split(':'); console.log(attr); var key = attr[0]; var value = attr[1]; return { key: key, value: value }; }); return array; } }]; //Ask inquirer.prompt(prompts, function (answers) { // if (!answers.moveon) { // return done(); // } answers.modelNameSlug = _.slugify(answers.modelName); gulp.src(__dirname + '/templates/**') .pipe(template(answers)) .pipe(gulp.dest('./')); }); });
gulp.task('default', function (done) { var questions = [ { type : 'input' , name : 'name' , message : 'What\'s the name of your project?' , default : gulp.args.join(' ') } , { type : 'input' , name : 'app' , message : 'What\'s the path of your source directory?' , default : './app' } , { type : 'input' , name : 'public' , message : 'What is the path of your static files?' , default : './public' } , { type : 'input' , name : 'javascripts' , message : 'What is the destination path of your javascripts?' , default : './public/assets/javascripts' } , { type : 'input' , name : 'stylesheets' , message : 'What is the destination path of your stylesheets?' , default : './public/assets/stylesheets' } ]; inquirer.prompt(questions, function (answers) { gulp.src(__dirname + '/templates/**', {dot: true}) .pipe(template(answers)) .pipe(conflict('./')) .pipe(gulp.dest('./')) .pipe(install()) .on('end', function () { util.log('All done...'); }) .on('error', function () { util.log(); }); }); });
gulp.task('default', function (fn) { inquirer.prompt([ {type: 'input', name: 'name', message: 'Give your app a name', default: gulp.args.join(' ')}, // Get app name from arguments by default {type: 'confirm', name: 'moveon', message: 'Continue?'} ], function(answers) { if(!answers.moveon) return fn(); gulp.src(__dirname + '/templates/**') // Note use of __dirname to be relative to generator .pipe(template(answers)) // Lodash template support .pipe(conflict('./')) // Confirms overwrites on file conflicts .pipe(gulp.dest('./')) // Without __dirname here = relative to cwd .pipe(install()) // Run `bower install` and/or `npm install` if necessary .on('finish', function () { fn(); // Finished! }); }); });
function processInput() { var inputs = {appType: 'rest', branch: 'master'}; gulp.args.forEach(function(arg) { if (isFlag(arg)) { var splits = arg.split('='); var flag = splits[0]; var value = splits[1]; if (flag === 'appType') { inputs.appType = value; } else if (flag === 'branch') { inputs.branch = value; } else { var message = arg + '\n is not a supported flag and has been ignored. You can specify appType=<appType> to specify Roxy appType or branch=<branch> to specify a Roxy branch\n'; process.stdout.write(message.red); } } else { inputs.appName = arg; } }); return inputs; }
gulp.task('post', function (done) { var now = moment(); var dirname, basename, prefix, extname = '.md'; inquirer.prompt([ {type: 'list', name: 'type', message: 'Type of post', choices: ['Post', 'Draft']}, {type: 'input', name: 'title', message: 'Title of post', default: gulp.args.join(' ')}, {type: 'input', name: 'description', message: 'Description of post'}, {type: 'confirm', name: 'moveon', message: 'Continue?'} ], function (answers) { if (!answers.moveon) { return done(); } // Check type of post, if it's to be published publish it to _posts, otherwise, save it as draft if (answers.type === 'Post'){ dirname = '_posts/' + now.year(); basename = S(answers.title).slugify(); prefix = now.format('YYYY-MM-DD-'); } else { dirname = '_drafts/' + now.year(); basename = S(answers.title).slugify(); prefix = ''; } gulp.src(__dirname + '/templates/post.html') .pipe(template(answers)) .pipe(rename({ dirname: dirname, basename: basename, prefix: prefix, extname: extname })) .pipe(conflict('./')) .pipe(gulp.dest('./')) // Without __dirname here = relative to cwd .on('end', function () { done(); // Finished! }) .resume(); }); });
gulp.task('default', function (done) { inquirer.prompt([ {type: 'checkbox', name: 'features', message: 'What else would you like to include?', choices: [{name: 'CoffeeScript', value: 'coffee', checked: false}, {name: 'Myth', value: 'myth', checked: false}]}, {type: 'input', name: 'name', message: 'Cool. So what\'s the name of your project? (No spaces please)', validate: function(input) { return (input.length ? true : "This field is required."); }, default: gulp.args.join(' ')}, {type: 'input', name: 'description', message: 'And what will it do?'}, {type: 'confirm', name: 'moveon', message: 'Continue?'} ], function (answers) { features = answers.features; hasFeature = function (feat) { return features.indexOf(feat) !== -1; } answers.coffee = hasFeature('coffee'); answers.myth = hasFeature('myth'); var files = [__dirname + '/templates/app/**']; if (answers.coffee) { files.push('!' + __dirname + '/templates/app/{js,js/**}') } else { files.push('!' + __dirname + '/templates/app/{coffee,coffee/**}') } if (answers.myth) { files.push('!' + __dirname + '/templates/app/{css,css/**}') } else { files.push('!' + __dirname + '/templates/app/{myth,myth/**}') } if (!answers.moveon) { return done(); } gulp.src(files) // Note use of __dirname to be relative to generator .pipe(template(answers)) // Lodash template support .pipe(conflict('./')) // Confirms overwrites on file conflicts .pipe(gulp.dest('./')) // Without __dirname here = relative to cwd .pipe(install()) // Run `bower install` and/or `npm install` if necessary .on('finish', function () { done(); // Finished! }); }); });
prompts: function () { var questions = [ { type: 'input', name: 'appName', message: 'What is the name of your app?', default: gulp.args.join(' ') }, { type: 'input', name: 'appDescription', message: 'What is the description for your app?' }, { type: 'list', name: 'appVersion', message: 'Which BURP version do you want to use?', choices: [ { key: 'd', name: 'Default', value: 'default' }, { key: 'b', name: 'Basic', value: 'basic' }, { key: 'c', name: 'Custom', value: false } ] }, { type: 'confirm', name: 'html', message: 'Do you want to use Jade?', default: true, when: function (props) { return !props.appVersion; } }, { type: 'confirm', name: 'css', message: 'Do you want to use Stylus?', default: true, when: function (props) { return !props.appVersion; } }, { type: 'list', name: 'jsLib', message: 'Which JS lib do you want to use?', choices: [ { key: 'm', name: 'Mantis.js (alpha version)', value: 'mantis-js' }, { key: 'j1', name: 'jQuery 1.*', value: 'jquery-1' }, { key: 'j2', name: 'jQuery 2.*', value: 'jquery-2' }, { key: 'z', name: 'Zepto.js', value: 'zepto-js' }, { key: 'n', name: 'None', value: false }, ], when: function (props) { return !props.appVersion; } } ]; return questions; },