Skip to:
Content

BuddyPress.org

Ticket #6382: 6382.5.patch

File 6382.5.patch, 5.5 KB (added by DJPaul, 4 years ago)

refresh for trunk

  • Gruntfile.js

    diff --git a/Gruntfile.js b/Gruntfile.js
    index 3bee33ccc..a9fe133ca 100644
    a b  
    11/* jshint node:true */
    22/* global module */
    33module.exports = function( grunt ) {
    4         var SOURCE_DIR = 'src/',
     4        var path   = require( 'path' ),
     5                SOURCE_DIR = 'src/',
    56                BUILD_DIR = 'build/',
    67
    78                BP_CSS = [
    module.exports = function( grunt ) { 
    1011
    1112                // CSS exclusions, for excluding files from certain tasks, e.g. rtlcss
    1213                BP_EXCLUDED_CSS = [
    13                         '!**/*-rtl.css'
     14                        '!**/*-rtl.css',
     15                        '!**/*.min.css'
    1416                ],
    1517
    1618                BP_JS = [
    1719                        '**/*.js'
    1820                ],
    1921
     22                // JS exclusions, for excluding files from certain tasks, e.g. uglify
     23                BP_EXCLUDED_JS = [
     24                        '!**/*.min.js'
     25                ],
     26
    2027                BP_EXCLUDED_MISC = [
    2128                ],
    2229
     30                BP_SCSS = [
     31                        'bp-templates/bp-legacy/css/*.scss',
     32                        'bp-templates/bp-nouveau/sass/buddypress.scss',
     33                        'bp-templates/bp-nouveau/common-styles/*.scss',
     34                        'bp-templates/bp-nouveau/sass/*.scss'
     35                ],
     36
    2337                // SASS generated "Twenty*"" CSS files
    2438                BP_SCSS_CSS_FILES = [
    2539                        '!bp-templates/bp-legacy/css/twenty*.css',
    module.exports = function( grunt ) { 
    4559                        grunt: {
    4660                                src: ['Gruntfile.js']
    4761                        },
     62                        dynamic: {
     63                                expand: true
     64                        },
    4865                        core: {
    4966                                expand: true,
    5067                                cwd: SOURCE_DIR,
    module.exports = function( grunt ) { 
    124141                                extDot: 'last',
    125142                                ext: '-rtl.css',
    126143                                src: BP_CSS.concat( BP_EXCLUDED_CSS, BP_EXCLUDED_MISC )
     144                        },
     145                        dynamic: {
     146                                expand: true,
     147                                cwd: SOURCE_DIR,
     148                                dest: SOURCE_DIR,
     149                                extDot: 'last',
     150                                ext: '-rtl.css',
     151                                src: []
    127152                        }
    128153                },
    129154                checktextdomain: {
    module.exports = function( grunt ) { 
    179204                        }
    180205                },
    181206                clean: {
    182                         all: [ BUILD_DIR ]
     207                        all: [ BUILD_DIR ],
     208                        dynamic: {
     209                                cwd: BUILD_DIR,
     210                                dot: true,
     211                                expand: true,
     212                                src: []
     213                        }
    183214                },
    184215                copy: {
    185216                        files: {
    module.exports = function( grunt ) { 
    198229                                                src: ['composer.json']
    199230                                        }
    200231                                ]
     232                        },
     233                        dynamic: {
     234                                cwd: SOURCE_DIR,
     235                                dest: BUILD_DIR,
     236                                dot: true,
     237                                expand: true,
     238                                src: []
    201239                        }
    202240                },
    203241                uglify: {
    module.exports = function( grunt ) { 
    207245                                extDot: 'last',
    208246                                expand: true,
    209247                                ext: '.min.js',
    210                                 src: BP_JS
     248                                src: BP_JS.concat( BP_EXCLUDED_JS )
     249                        },
     250                        dynamic: {
     251                                cwd: SOURCE_DIR,
     252                                dest: BUILD_DIR,
     253                                expand: true,
     254                                ext: '.min.js',
     255                                extDot: 'last',
     256                                src: []
    211257                        }
    212258                },
    213259                stylelint: {
    module.exports = function( grunt ) { 
    237283                                extDot: 'last',
    238284                                expand: true,
    239285                                ext: '.min.css',
    240                                 src: BP_CSS
     286                                src: BP_CSS.concat( BP_EXCLUDED_CSS )
    241287                        }
    242288                },
    243289                phpunit: {
    module.exports = function( grunt ) { 
    261307                                stdout: false
    262308                        }
    263309                },
    264                 jsvalidate:{
    265                         options:{
     310                jsvalidate: {
     311                        options: {
    266312                                globals: {},
    267313                                esprimaOptions:{},
    268314                                verbose: false
    module.exports = function( grunt ) { 
    276322                                files: {
    277323                                        src: [SOURCE_DIR + '/**/*.js'].concat( BP_EXCLUDED_MISC )
    278324                                }
    279                         }
     325                        },
     326                        dynamic: {
     327                                files: {}
     328                        }
    280329                },
    281330                patch: {
    282331                        options: {
    module.exports = function( grunt ) { 
    287336                        options: {
    288337                                tracUrl: 'buddypress.trac.wordpress.org'
    289338                        }
     339                },
     340                watch: {
     341                        all: {
     342                                files: ['**', '!**/.{svn,git}/**'].concat( BP_EXCLUDED_MISC ),
     343                                tasks: ['clean:dynamic', 'copy:dynamic'],
     344                                options: {
     345                                        dot: true,
     346                                        spawn: false
     347                                }
     348                        },
     349                        config: {
     350                                files: 'Gruntfile.js',
     351                                tasks: ['jsvalidate:dynamic', 'jshint:grunt'],
     352                                options: {
     353                                        spawn: false
     354                                }
     355                        },
     356                        js: {
     357                                files: BP_JS.map( function( path ) {
     358                                        return SOURCE_DIR + path;
     359                                } ),
     360                                tasks: ['jsvalidate:dynamic', 'jshint:dynamic'],
     361                                options: {
     362                                        spawn: false
     363                                }
     364                        },
     365                        rtl: {
     366                                files: BP_CSS.map( function( path ) {
     367                                        return SOURCE_DIR + path;
     368                                } ),
     369                                tasks: ['rtlcss:dynamic'],
     370                                options: {
     371                                        spawn: false
     372                                }
     373                        },
     374                        styles: {
     375                                files: [SOURCE_DIR + BP_SCSS],
     376                                tasks: ['stylelint:sass', 'sass']
     377                        }
    290378                }
    291379        });
    292380
    module.exports = function( grunt ) { 
    294382        /**
    295383         * Register tasks.
    296384         */
    297         grunt.registerTask( 'src',     ['checkDependencies', 'jsvalidate:src', 'jshint', 'stylelint', 'sass', 'rtlcss'] );
     385        grunt.registerTask( 'src',     ['checkDependencies', 'jsvalidate:src', 'jshint:core', 'stylelint', 'sass', 'rtlcss'] );
    298386        grunt.registerTask( 'commit',  ['src', 'checktextdomain', 'imagemin'] );
    299         grunt.registerTask( 'build',   ['commit', 'clean:all', 'copy:files', 'uglify', 'jsvalidate:build', 'cssmin', 'makepot', 'exec:bpdefault'] );
     387        grunt.registerTask( 'build',   ['commit', 'clean:all', 'copy:files', 'uglify:core', 'jsvalidate:build', 'cssmin', 'makepot', 'exec:bpdefault'] );
    300388        grunt.registerTask( 'release', ['build'] );
    301389
    302390        // Testing tasks.
    module.exports = function( grunt ) { 
    322410
    323411        // Default task.
    324412        grunt.registerTask( 'default', ['src'] );
     413
     414
     415        // Add a listener to the watch task.
     416        grunt.event.on( 'watch', function( action, filepath, target ) {
     417                if ( target !== 'all' && target !== 'rtl' ) {
     418                        return;
     419                }
     420
     421                var relativePath = path.relative( SOURCE_DIR, filepath ),
     422                cleanSrc = ( action === 'deleted' ) ? [relativePath ] : [],
     423                copySrc  = ( action === 'deleted' ) ? [] : [relativePath];
     424
     425                grunt.config( ['clean', 'dynamic', 'src'], cleanSrc );
     426                grunt.config( ['copy', 'dynamic', 'src'], copySrc );
     427                grunt.config( ['jshint', 'dynamic', 'src'], copySrc );
     428                grunt.config( ['jsvalidate', 'dynamic', 'src'], copySrc );
     429                grunt.config( ['rtlcss', 'dynamic', 'src'], copySrc );
     430        });
    325431};