From 7e53f5e404dccf7337c9309b1f60b693b4e74e98 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Sun, 19 Jun 2016 12:31:15 +0000 Subject: [PATCH] Grunt: when running `precommit` use regex to check which files have been modified. Fixes #36528. git-svn-id: https://develop.svn.wordpress.org/trunk@37749 602fd350-edb4-49c9-b593-d223f7449a82 --- Gruntfile.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index f008a51e47..1c422cf8c5 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -725,21 +725,29 @@ module.exports = function(grunt) { grunt.fatal( 'The `' + map[ type ] + '` command returned a non-zero exit code.', code ); } - if ( [ 'package.json', 'Gruntfile.js' ].some( function( path ) { - return ( result.stdout + '\n' ).indexOf( ' ' + path + '\n' ) !== -1; - } ) ) { + // Callback for finding modified paths. + function testPath( path ) { + var regex = new RegExp( ' ' + path + '$', 'm' ); + return regex.test( result.stdout ); + } + + // Callback for finding modified files by extension. + function testExtension( extension ) { + var regex = new RegExp( '\.' + extension + '$', 'm' ); + return regex.test( result.stdout ); + } + + if ( [ 'package.json', 'Gruntfile.js' ].some( testPath ) ) { grunt.log.writeln( 'Configuration files modified. Running `prerelease`.' ); taskList.push( 'prerelease' ); } else { - if ( [ 'png', 'jpg', 'gif', 'jpeg' ].some( function( extension ) { - return ( result.stdout + '\n' ).indexOf( '.' + extension + '\n' ) !== -1; - } ) ) { + if ( [ 'png', 'jpg', 'gif', 'jpeg' ].some( testExtension ) ) { grunt.log.writeln( 'Image files modified. Minifying.' ); taskList.push( 'precommit:image' ); } [ 'js', 'css', 'php' ].forEach( function( extension ) { - if ( ( result.stdout + '\n' ).indexOf( '.' + extension + '\n' ) !== -1 ) { + if ( testExtension( extension ) ) { grunt.log.writeln( extension.toUpperCase() + ' files modified. ' + extension.toUpperCase() + ' tests will be run.' ); taskList.push( 'precommit:' + extension ); }