Skip to:
Content

BuddyPress.org

Ticket #6382: 6382.3.patch

File 6382.3.patch, 4.9 KB (added by DJPaul, 6 years ago)
  • Gruntfile.js

    diff --git a/Gruntfile.js b/Gruntfile.js
    index 44aa52e..7691287 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. cssjanus
    1213                BP_EXCLUDED_CSS = [
    13                         '!**/*-rtl.css'
     14                        '!**/*-rtl.css',
     15                        '!**/*.scss'
    1416                ],
    1517
    1618                BP_JS = [
    module.exports = function( grunt ) { 
    3133                        grunt: {
    3234                                src: ['Gruntfile.js']
    3335                        },
     36                        dynamic: {
     37                                expand: true
     38                        },
    3439                        core: {
    3540                                expand: true,
    3641                                cwd: SOURCE_DIR,
    module.exports = function( grunt ) { 
    9499                                ext: '-rtl.css',
    95100                                src: BP_CSS.concat( BP_EXCLUDED_CSS, BP_EXCLUDED_MISC ),
    96101                                options: { generateExactDuplicates: true }
     102                        },
     103                        dynamic: {
     104                                expand: true,
     105                                cwd: SOURCE_DIR,
     106                                dest: SOURCE_DIR,
     107                                extDot: 'last',
     108                                ext: '-rtl.css',
     109                                src: [],
     110                                options: { generateExactDuplicates: true }
    97111                        }
    98112                },
     113
    99114                checktextdomain: {
    100115                        options: {
    101116                                correct_domain: false,
    module.exports = function( grunt ) { 
    148163                                dest: SOURCE_DIR
    149164                        }
    150165                },
     166
    151167                clean: {
    152                         all: [ BUILD_DIR ]
     168                        all: [ BUILD_DIR ],
     169                        dynamic: {
     170                                cwd: BUILD_DIR,
     171                                dot: true,
     172                                expand: true,
     173                                src: []
     174                        }
    153175                },
    154176                copy: {
    155177                        files: {
    module.exports = function( grunt ) { 
    162184                                                src: ['**', '!**/.{svn,git}/**'].concat( BP_EXCLUDED_MISC )
    163185                                        }
    164186                                ]
     187                        },
     188                        dynamic: {
     189                                cwd: SOURCE_DIR,
     190                                dest: BUILD_DIR,
     191                                dot: true,
     192                                expand: true,
     193                                src: []
    165194                        }
    166195                },
    167196                uglify: {
    168197                        core: {
    169198                                cwd: BUILD_DIR,
    170199                                dest: BUILD_DIR,
    171                                 extDot: 'last',
    172200                                expand: true,
    173201                                ext: '.min.js',
     202                                extDot: 'last',
    174203                                src: BP_JS
    175204                        },
     205                        dynamic: {
     206                                cwd: SOURCE_DIR,
     207                                dest: BUILD_DIR,
     208                                expand: true,
     209                                ext: '.min.js',
     210                                extDot: 'last',
     211                                src: []
     212                        },
    176213                        options: {
    177214                                banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
    178215                                '<%= grunt.template.today("UTC:yyyy-mm-dd h:MM:ss TT Z") %> - ' +
    module.exports = function( grunt ) { 
    224261                                stdout: false
    225262                        }
    226263                },
    227                 jsvalidate:{
    228                         options:{
     264                jsvalidate: {
     265                        options: {
    229266                                globals: {},
    230267                                esprimaOptions:{},
    231268                                verbose: false
    module.exports = function( grunt ) { 
    239276                                files: {
    240277                                        src: [SOURCE_DIR + '/**/*.js'].concat( BP_EXCLUDED_MISC )
    241278                                }
     279                        },
     280                        dynamic: {
     281                                files: {}
    242282                        }
    243283                },
    244284                patch: {
    245285                        options: {
    246286                                tracUrl: 'buddypress.trac.wordpress.org'
    247287                        }
     288                },
     289                watch: {
     290                        all: {
     291                                files: ['**', '!**/.{svn,git}/**'].concat( BP_EXCLUDED_MISC ),
     292                                tasks: ['clean:dynamic', 'copy:dynamic'],
     293                                options: {
     294                                        dot: true,
     295                                        spawn: false
     296                                }
     297                        },
     298                        config: {
     299                                files: 'Gruntfile.js',
     300                                tasks: ['jsvalidate:dynamic', 'jshint:grunt'],
     301                                options: {
     302                                        spawn: false
     303                                }
     304                        },
     305                        js: {
     306                                files: BP_JS.map( function( path ) {
     307                                        return SOURCE_DIR + path;
     308                                } ),
     309                                tasks: ['jsvalidate:dynamic', 'jshint:dynamic'],
     310                                options: {
     311                                        spawn: false
     312                                }
     313                        },
     314                        rtl: {
     315                                files: BP_CSS.map( function( path ) {
     316                                        return SOURCE_DIR + path;
     317                                } ),
     318                                tasks: ['cssjanus:dynamic'],
     319                                options: {
     320                                        spawn: false
     321                                }
     322                        },
     323                        styles: {
     324                                files: [SOURCE_DIR + 'bp-templates/bp-legacy/css/*.scss'],
     325                                tasks: ['sass:styles']
     326                        }
    248327                }
    249328        });
    250329
     330        // Styles task for companion stylesheets
     331        grunt.registerTask( 'styles', ['sass:styles'] );
    251332
    252333        /**
    253334         * Register tasks.
    254335         */
    255336        grunt.registerTask( 'src',     ['jsvalidate:src', 'jshint', 'scsslint', 'sass', 'cssjanus'] );
    256337        grunt.registerTask( 'commit',  ['src', 'checktextdomain', 'imagemin'] );
    257         grunt.registerTask( 'build',   ['commit', 'clean:all', 'copy:files', 'uglify', 'jsvalidate:build', 'cssmin', 'makepot', 'exec:bpdefault'] );
     338        grunt.registerTask( 'build',   ['commit', 'clean:all', 'copy:files', 'uglify:core', 'jsvalidate:build', 'cssmin', 'makepot', 'exec:bpdefault'] );
    258339        grunt.registerTask( 'release', ['build', 'exec:bbpress'] );
    259340
    260341        // Testing tasks.
    module.exports = function( grunt ) { 
    278359
    279360        // Default task.
    280361        grunt.registerTask( 'default', ['src'] );
     362
     363
     364        // Add a listener to the watch task.
     365        grunt.event.on( 'watch', function( action, filepath, target ) {
     366                if ( target !== 'all' && target !== 'rtl' ) {
     367                        return;
     368                }
     369
     370                var relativePath = path.relative( SOURCE_DIR, filepath ),
     371                cleanSrc = ( action === 'deleted' ) ? [relativePath ] : [],
     372                copySrc  = ( action === 'deleted' ) ? [] : [relativePath];
     373
     374                grunt.config( ['clean', 'dynamic', 'src'], cleanSrc );
     375                grunt.config( ['copy', 'dynamic', 'src'], copySrc );
     376                grunt.config( ['cssjanus', 'dynamic', 'src'], copySrc );
     377                grunt.config( ['jshint', 'dynamic', 'src'], copySrc );
     378                grunt.config( ['jsvalidate', 'dynamic', 'src'], copySrc );
     379        });
    281380};