@@ -58,6 +58,22 @@ module.exports = function(grunt) {
58
58
return content ;
59
59
} ;
60
60
61
+ var getSubDirs = function ( dir ) {
62
+ var allObjects = fs . readdirSync ( dir ) ;
63
+ var allDirs = [ ] ;
64
+ for ( var i = 0 ; i < allObjects . length ; i ++ )
65
+ {
66
+ var currentObjName = allObjects [ i ] ;
67
+ var currentObjPath = pathModule . join ( dir , currentObjName ) ;
68
+ var stats = fs . statSync ( currentObjPath ) ;
69
+ if ( stats . isDirectory ( ) )
70
+ {
71
+ allDirs . push ( { name : currentObjName , path : currentObjPath } ) ;
72
+ }
73
+ }
74
+ return allDirs ;
75
+ }
76
+
61
77
var localCfg = {
62
78
srcDir : "." ,
63
79
srcAppsDir : "./apps" ,
@@ -129,6 +145,12 @@ module.exports = function(grunt) {
129
145
dest : "<%= localCfg.outModulesDir %>/" ,
130
146
cwd : localCfg . srcDir
131
147
} ,
148
+ appLicense : {
149
+ expand : true ,
150
+ src : [ "./LICENSE" ] ,
151
+ cwd : localCfg . srcAppsDir ,
152
+ dest : "__dummy__"
153
+ } ,
132
154
definitionFiles : {
133
155
src : [
134
156
localCfg . srcDir + "/**/*.d.ts" ,
@@ -188,7 +210,7 @@ module.exports = function(grunt) {
188
210
} ,
189
211
readyAppFiles : {
190
212
expand : true ,
191
- src : [ "./**/*.*" , "../LICENSE" ] ,
213
+ src : [ "./**/*.*" ] ,
192
214
dest : localCfg . outAppsDir + "/" ,
193
215
cwd : localCfg . outModulesDir + "/apps/" ,
194
216
options : {
@@ -197,7 +219,7 @@ module.exports = function(grunt) {
197
219
} ,
198
220
readyTsAppFiles : {
199
221
expand : true ,
200
- src : [ "./**/*.*" , "!./**/*.map" , "../LICENSE" ] ,
222
+ src : [ "./**/*.*" , "!./**/*.map" ] ,
201
223
dest : localCfg . outTsAppsDir + "/" ,
202
224
cwd : localCfg . srcAppsDir
203
225
} ,
@@ -246,6 +268,20 @@ module.exports = function(grunt) {
246
268
cmd : "npm pack" ,
247
269
cwd : "__dummy__"
248
270
}
271
+ } ,
272
+ multidest : {
273
+ copyLicenseFiles : {
274
+ tasks : [ "copy:appLicense" ] ,
275
+ dest : function ( ) {
276
+ var apps = getSubDirs ( localCfg . srcAppsDir ) ;
277
+ var targetDirs = [ ] ;
278
+ apps . forEach ( function ( item ) {
279
+ targetDirs . push ( pathModule . join ( localCfg . outAppsDir , item . name ) ) ;
280
+ targetDirs . push ( pathModule . join ( localCfg . outTsAppsDir , item . name ) ) ;
281
+ } ) ;
282
+ return targetDirs ;
283
+ } ( )
284
+ }
249
285
}
250
286
} ) ;
251
287
@@ -254,22 +290,7 @@ module.exports = function(grunt) {
254
290
grunt . loadNpmTasks ( "grunt-contrib-copy" ) ;
255
291
grunt . loadNpmTasks ( "grunt-exec" ) ;
256
292
grunt . loadNpmTasks ( "grunt-tslint" ) ;
257
-
258
- var getSubDirs = function ( dir ) {
259
- var allObjects = fs . readdirSync ( dir ) ;
260
- var allDirs = [ ] ;
261
- for ( var i = 0 ; i < allObjects . length ; i ++ )
262
- {
263
- var currentObjName = allObjects [ i ] ;
264
- var currentObjPath = pathModule . join ( dir , currentObjName ) ;
265
- var stats = fs . statSync ( currentObjPath ) ;
266
- if ( stats . isDirectory ( ) )
267
- {
268
- allDirs . push ( { name : currentObjName , path : currentObjPath } ) ;
269
- }
270
- }
271
- return allDirs ;
272
- }
293
+ grunt . loadNpmTasks ( "grunt-multi-dest" ) ;
273
294
274
295
var cloneTasks = function ( originalTasks , taskNameSuffix )
275
296
{
@@ -333,6 +354,7 @@ module.exports = function(grunt) {
333
354
334
355
grunt . registerTask ( "collect-apps-raw-files" , [
335
356
"copy:rawAppsFiles" ,
357
+ "multidest:copyLicenseFiles"
336
358
] ) ;
337
359
338
360
// Does nothing to avoid copying the same files twice. Instead,
0 commit comments