@@ -5,6 +5,7 @@ var _s = require('underscore.string');
5
5
var shell = require ( 'shelljs' ) ;
6
6
var process = require ( 'child_process' ) ;
7
7
var Q = require ( 'q' ) ;
8
+ var helpers = require ( 'yeoman-generator' ) . test ;
8
9
9
10
module . exports = function ( grunt ) {
10
11
require ( 'load-grunt-tasks' ) ( grunt ) ;
@@ -33,6 +34,21 @@ module.exports = function (grunt) {
33
34
files : [ 'CHANGELOG.md' ]
34
35
}
35
36
} ,
37
+ buildcontrol : {
38
+ options : {
39
+ dir : 'demo' ,
40
+ commit : true ,
41
+ push : true ,
42
+ connectCommits : false ,
43
+ message : 'Built using Angular Fullstack v<%= pkg.version %> from commit %sourceCommit%'
44
+ } ,
45
+ release : {
46
+ options : {
47
+ remote : 'origin' ,
48
+ branch : 'master'
49
+ }
50
+ }
51
+ } ,
36
52
jshint : {
37
53
options : {
38
54
curly : false ,
@@ -46,6 +62,7 @@ module.exports = function (grunt) {
46
62
dot : true ,
47
63
src : [
48
64
'<%= config.demo %>/*' ,
65
+ '!<%= config.demo %>/.git' ,
49
66
'!<%= config.demo %>/dist'
50
67
]
51
68
} ]
@@ -88,6 +105,7 @@ module.exports = function (grunt) {
88
105
89
106
Q ( )
90
107
. then ( generateDemo )
108
+ . then ( gruntBuild )
91
109
. then ( gruntRelease )
92
110
. catch ( function ( msg ) {
93
111
grunt . fail . warn ( msg || 'failed to generate demo' )
@@ -96,25 +114,38 @@ module.exports = function (grunt) {
96
114
97
115
function generateDemo ( ) {
98
116
var deferred = Q . defer ( ) ;
99
- var generator = shell . exec ( 'yo angular-fullstack' , { async :true } ) ;
117
+ var options = {
118
+ script : 'js' ,
119
+ markup : 'html' ,
120
+ stylesheet : 'sass' ,
121
+ router : 'uirouter' ,
122
+ mongoose : true ,
123
+ auth : true ,
124
+ oauth : [ 'googleAuth' , 'twitterAuth' ] ,
125
+ socketio : true
126
+ } ;
100
127
101
- generator . stdout . on ( 'data' , function ( data ) {
102
- if ( _s . include ( data , '[?]' ) ) {
103
- generator . stdin . write ( '\n' ) ;
104
- }
105
- grunt . verbose . writeln ( data ) ;
106
- } ) ;
128
+ var deps = [
129
+ '../app' ,
130
+ [
131
+ helpers . createDummyGenerator ( ) ,
132
+ 'ng-component:app'
133
+ ]
134
+ ] ;
135
+
136
+ var gen = helpers . createGenerator ( 'angular-fullstack:app' , deps ) ;
107
137
108
- generator . on ( 'close' , function ( code ) {
138
+ helpers . mockPrompt ( gen , options ) ;
139
+ gen . run ( { } , function ( ) {
109
140
deferred . resolve ( ) ;
110
141
} ) ;
111
142
112
143
return deferred . promise ;
113
144
}
114
145
115
- function gruntRelease ( ) {
146
+ function run ( cmd ) {
116
147
var deferred = Q . defer ( ) ;
117
- var generator = shell . exec ( 'grunt build' , { async :true } ) ;
148
+ var generator = shell . exec ( cmd , { async :true } ) ;
118
149
generator . stdout . on ( 'data' , function ( data ) {
119
150
grunt . verbose . writeln ( data ) ;
120
151
} ) ;
@@ -124,6 +155,14 @@ module.exports = function (grunt) {
124
155
125
156
return deferred . promise ;
126
157
}
158
+
159
+ function gruntBuild ( ) {
160
+ return run ( 'grunt' ) ;
161
+ }
162
+
163
+ function gruntRelease ( ) {
164
+ return run ( 'grunt buildcontrol' ) ;
165
+ }
127
166
} ) ;
128
167
129
168
grunt . registerTask ( 'demo' , [
0 commit comments