@@ -5,6 +5,7 @@ var _s = require('underscore.string');
55var shell = require ( 'shelljs' ) ;
66var process = require ( 'child_process' ) ;
77var Q = require ( 'q' ) ;
8+ var helpers = require ( 'yeoman-generator' ) . test ;
89
910module . exports = function ( grunt ) {
1011 require ( 'load-grunt-tasks' ) ( grunt ) ;
@@ -33,6 +34,21 @@ module.exports = function (grunt) {
3334 files : [ 'CHANGELOG.md' ]
3435 }
3536 } ,
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+ } ,
3652 jshint : {
3753 options : {
3854 curly : false ,
@@ -46,6 +62,7 @@ module.exports = function (grunt) {
4662 dot : true ,
4763 src : [
4864 '<%= config.demo %>/*' ,
65+ '!<%= config.demo %>/.git' ,
4966 '!<%= config.demo %>/dist'
5067 ]
5168 } ]
@@ -88,6 +105,7 @@ module.exports = function (grunt) {
88105
89106 Q ( )
90107 . then ( generateDemo )
108+ . then ( gruntBuild )
91109 . then ( gruntRelease )
92110 . catch ( function ( msg ) {
93111 grunt . fail . warn ( msg || 'failed to generate demo' )
@@ -96,25 +114,38 @@ module.exports = function (grunt) {
96114
97115 function generateDemo ( ) {
98116 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+ } ;
100127
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 ) ;
107137
108- generator . on ( 'close' , function ( code ) {
138+ helpers . mockPrompt ( gen , options ) ;
139+ gen . run ( { } , function ( ) {
109140 deferred . resolve ( ) ;
110141 } ) ;
111142
112143 return deferred . promise ;
113144 }
114145
115- function gruntRelease ( ) {
146+ function run ( cmd ) {
116147 var deferred = Q . defer ( ) ;
117- var generator = shell . exec ( 'grunt build' , { async :true } ) ;
148+ var generator = shell . exec ( cmd , { async :true } ) ;
118149 generator . stdout . on ( 'data' , function ( data ) {
119150 grunt . verbose . writeln ( data ) ;
120151 } ) ;
@@ -124,6 +155,14 @@ module.exports = function (grunt) {
124155
125156 return deferred . promise ;
126157 }
158+
159+ function gruntBuild ( ) {
160+ return run ( 'grunt' ) ;
161+ }
162+
163+ function gruntRelease ( ) {
164+ return run ( 'grunt buildcontrol' ) ;
165+ }
127166 } ) ;
128167
129168 grunt . registerTask ( 'demo' , [
0 commit comments