-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmamba
executable file
·105 lines (92 loc) · 3.45 KB
/
mamba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/env node
var program = require('commander'),
Mamba = require('./lib'),
mamba = new Mamba(),
fs = require('fs'),
path = require('path');
program
.command('install [install]')
.alias('-i')
.description('Install modules from a git repository')
.option('-a, --assets [assets]', 'Install Assets')
.option('-m, --modules [modules]', 'Install Modules')
.action(function(cmd, options){
if(options.assets){
mamba.installAssets();
}else if(options.modules){
mamba.installModules();
}
})
program
.command('new [new]')
.description('Generate a new AngularJS App aka ngApp')
.action(function(){
mamba.newProject()
})
program
.command('tree [tree]')
.description('Generate a new tree for a module template')
.option("-n, --name [name]", "Name for the Module")
.action(function(env, options){
console.log('creating tree module template', options.name);
if(options.name){
mamba.cretateModuleTree(options.name)
}else{
console.log('you must pass the name');
}
})
program
.command('generate [env]')
.description('Create AngularJS components <controller, factory, routes> ')
.option("-m, --module [module]", "Angular module name <generic>")
.option("-n, --name [name]", "Component name <generic>")
.option("-a, --actions [actions]", "Comma sparated list of method to be generated <controller, factory>")
.option("-D, --crud [crud]", "Generate with default crud actions <controller, factory>")
.option("-I, --interpolate [interpolate]", "Generate a factory with interpolated labels <factory>")
.option("-r, --rootAction [rootAction]", "root action for the abstract state <route>")
.option("-s, --states [states]", "Comma separated list of states <route>")
.option("-c, --controller [controller]", "name of the controller, used as vm <route>")
.option("-e, --endpoint [endpoint]", "name of the endpoint of the rest service, for crud operations")
.action(function(env, options){
var module = options.module
var name = options.name
var endpoint = options.endpoint
var crud = ['Create','List','Update','Delete']
if(env != 'routes'){
if(options.crud){
var methods = crud
}else{
var methods = options.actions.split(',')
}
}else{
var states = options.states.split(',')
}
switch(env){
case 'controller':
console.log('creating controller', env);
mamba.compile({module: module, name: name, methods: methods, endpoint: endpoint, type: 'controller'})
break;
case 'factory':
if(options.interpolate){
console.log('creating interpolated factory', env);
mamba.compile({module: module, name: name, methods: methods, type: 'factory', interpolated: true})
}else{
console.log('creating factory', env);
mamba.compile({module: module, name: name, methods: methods, type: 'factory'})
}
break;
case 'routes':
console.log('creating routes for ' + module);
mamba.compile({
module: module,
name: name,
rootAction: options.rootAction,
states: states,
controller: options.controller,
type: 'routes'
})
break;
}
});
program.parse(process.argv);
if (!program.args.length) program.help();