@@ -429,7 +429,7 @@ module.exports = function(grunt) {
429429 mochaNode : {
430430 cmd : "grunt simplemocha:node"
431431 } ,
432- injectArticles : {
432+ injectArticleSnippets : {
433433 cmd : "node node_modules/markdown-snippet-injector/index.js --root=<%= localCfg.srcAppsTests %> --docsroot=<%= localCfg.outArticlesDir %>"
434434 }
435435 } ,
@@ -663,6 +663,29 @@ module.exports = function(grunt) {
663663 grunt . registerTask ( "distribute-ts-apps-files" , [
664664 "copy:readyTsAppFiles"
665665 ] ) ;
666+ grunt . registerTask ( "herdArticles" , function ( ) {
667+ var moveSinglesUp = function ( dir ) {
668+ var objs = fs . readdirSync ( dir ) ;
669+ for ( var i = 0 ; i < objs . length ; i ++ ) {
670+ var obj = objs [ i ] ;
671+ var fullPath = pathModule . join ( dir , obj ) ;
672+ if ( objs . length == 1 ) {
673+ var parentDir = pathModule . dirname ( dir ) ;
674+ var newPath = pathModule . join ( parentDir , obj ) ;
675+ fs . renameSync ( fullPath , newPath ) ;
676+ fs . rmdirSync ( dir ) ;
677+ } else {
678+ var objStat = fs . statSync ( fullPath ) ;
679+ if ( objStat . isDirectory ( ) ) {
680+ moveSinglesUp ( fullPath ) ;
681+ }
682+ }
683+ }
684+ } ;
685+
686+ moveSinglesUp ( localCfg . outArticlesDir ) ;
687+ } ) ;
688+
666689 grunt . registerTask ( "generate-tns-core-modules-dev-dts" , generateModulesDts . bind ( null , "." ) ) ;
667690 grunt . registerTask ( "generate-tns-core-modules-dts" , generateModulesDts . bind ( null , localCfg . outModulesDir ) ) ;
668691 //aliasing pack-modules for backwards compatibility
@@ -735,7 +758,8 @@ module.exports = function(grunt) {
735758 grunt . registerTask ( "articles" , [
736759 "clean:articles" ,
737760 "copy:articleMDs" ,
738- "exec:injectArticles"
761+ "exec:injectArticleSnippets" ,
762+ "herdArticles"
739763 ] ) ;
740764
741765 grunt . registerTask ( "docs" , [
0 commit comments