UNPKG

generator-linda

Version:

Yeoman generator for Linda. Generate hubot-like workers set.

89 lines (83 loc) 2.23 kB
'use strict'; var yeoman = require('yeoman-generator'); var pkg = require('../package.json'); module.exports = yeoman.generators.Base.extend({ getDefaultOwner: function(){ var user, mail; if (typeof(this.user.git.name) == 'function') { user = this.user.git.name(); } else { user = this.user.git.name; } if (typeof(this.user.git.email) == 'function') { mail = this.user.git.email(); } else { mail = this.user.git.email; } if (user && mail) { return user+' <'+mail+'>'; } else { return "User <user@example.com>"; } }, constructor: function(){ yeoman.generators.Base.apply(this, arguments); this.generatorVersion = pkg.version; this.log('generate linda-worker template'); }, prompting: { askFor: function(){ var done = this.async(); this.prompt([ { name: 'appName', message: 'App Name', default: 'linda-worker' }, { name: 'owner', message: 'Owner', default: this.getDefaultOwner() }, { name: 'lindaServer', message: 'Linda Server', default: 'https://linda-server.herokuapp.com' }, { name: 'tupleSpace', message: 'default TupleSpace', default: 'test' }, { name: 'where', message: 'where to use', default: 'myroom' } ], function(res){ this.owner = res.owner; this.appName = res.appName; this.lindaServer = res.lindaServer; this.tupleSpace = res.tupleSpace; this.where = res.where; done(); }.bind(this)); } }, writing: { app: function(){ this.template('_package.json', 'package.json'); this.template('README.md', 'README.md'); this.template('config.json', 'config.json'); this.copy('Procfile', 'Procfile'); this.copy('Gruntfile.coffee', 'Gruntfile.coffee'); this.copy('gitignore', '.gitignore'); this.directory('bin', 'bin'); this.directory('scripts', 'scripts'); this.directory('libs', 'libs'); } }, end: function(){ this.npmInstall(); } });