UNPKG

2.17 kBPlain TextView Raw
1#!/usr/bin/env node
2
3var fs = require('fs');
4var path = require('path');
5var colors = require('colors');
6var _ = require('underscore');
7var wizard = require('../lib/app/wizard');
8var generateTemplate = require('../lib/generate-template');
9var rc = require('rc');
10var findRoot = require('find-root');
11var templateDir = __dirname + '/../lib/templates';
12var config = rc('ampersand', {
13 framework: 'hapi',
14 indent: 4,
15 view: templateDir + '/view.js',
16 router: templateDir + '/router.js',
17 model: templateDir + '/model.js',
18 page: templateDir + '/page.js',
19 collection: templateDir + '/collection.js',
20 clientfolder: 'client',
21 viewfolder: 'views',
22 pagefolder: 'pages',
23 modelfolder: 'models',
24 formsfolder: 'forms',
25 collectionfolder: 'models',
26 makecollection: true,
27 // if it was called without the 'gen' argument we're building a new one
28 // so we won't look for an application root
29 approot: (process.argv[2] !== 'gen') ? process.cwd() : findRoot(process.cwd()),
30 h: false,
31 help: false,
32 f: false,
33 force: false,
34 quotes: 'single'
35});
36
37// alias
38config.force = config.force || config.f;
39config.help = config.help || config.h;
40
41['view', 'router', 'model', 'page'].forEach(function (key) {
42 config[key] = path.resolve(config[key]);
43});
44
45if (config.help) {
46 console.log('ampersand'.bold + ' starts a generator for building an app.');
47 console.log('ampersand gen view ${name}'.bold + ' generates a view in appropriate folder in current folder (per config)');
48 console.log('ampersand gen model ${name}'.bold + ' generates a model in appropriate folder in current folder (per config)');
49 console.log('ampersand gen router ${optional name}'.bold + ' generates a router in client app folder in current folder (per config)');
50 console.log('ampersand gen page ${name}'.bold + ' generates a page view in appropriate folder in current folder (per config)');
51 process.exit(0);
52}
53
54// if no command is specified assume they want to start
55// a new app.
56if (!config._.length) {
57 wizard(config);
58} else if (config._[0] === 'gen') {
59 config.name = config._[1];
60 generateTemplate(config);
61}