diff options
Diffstat (limited to 'grunt.js')
-rw-r--r-- | grunt.js | 28 |
1 files changed, 19 insertions, 9 deletions
@@ -7,6 +7,9 @@ /*jshint node: true */ /*global config:true, task:true, process:true*/ + +var child_process = require("child_process"); + module.exports = function( grunt ) { // readOptionalJSON @@ -379,22 +382,29 @@ module.exports = function( grunt ) { }); grunt.registerTask( "submodules", function() { - var done = this.async(); + var done = this.async(), + // change pointers for submodules and update them to what is specified in jQuery + // --merge doesn't work when doing an initial clone, thus test if we have non-existing + // submodules, then do an real update + cmd = "if [ -d .git ]; then \n" + + "if git submodule status | grep -q -E '^-'; then \n" + + "git submodule update --init --recursive; \n" + + "else \n" + + "git submodule update --init --recursive --merge; \n" + + "fi; \n" + + "fi;"; grunt.verbose.write( "Updating submodules..." ); - // TODO: migrate remaining `make` to grunt tasks - // - grunt.utils.spawn({ - cmd: "make" - }, function( err, result ) { - if ( err ) { + child_process.exec( cmd, function( err, stdout, stderr ) { + if ( stderr ) { + console.log(stderr); grunt.verbose.error(); - done( err ); + done( stderr ); return; } - grunt.log.writeln( result ); + grunt.log.writeln( stdout ); done(); }); |