2013-05-10 8 views
5

Chcę utworzyć plik pomruczania, który uruchamia 3 zadania pomruczkowe kolejno jeden po drugim, niezależnie od tego, czy zawodzą, czy nie. Jeśli jedno z zadań cholernych nie powiedzie się, chcę zwrócić ostatni kod błędu.Gruntfile pobieranie kodów błędów z programów szeregowo

Próbowałem:

grunt.task.run('task1', 'task2', 'task3'); 

z opcją --force podczas biegu.

Problem polega na tym, że po określeniu --force zwraca kod błędu 0 niezależnie od błędów.

Dzięki

Odpowiedz

7

Zastosowanie grunt.util.spawn: http://gruntjs.com/api/grunt.util#grunt.util.spawn

grunt.registerTask('serial', function() { 
    var done = this.async(); 
    var tasks = {'task1': 0, 'task2': 0, 'task3': 0}; 
    grunt.util.async.forEachSeries(Object.keys(tasks), function(task, next) { 
    grunt.util.spawn({ 
     grunt: true, // use grunt to spawn 
     args: [task], // spawn this task 
     opts: { stdio: 'inherit' }, // print to the same stdout 
    }, function(err, result, code) { 
     tasks[task] = code; 
     next(); 
    }); 
    }, function() { 
    // Do something with tasks now that each 
    // contains their respective error code 
    done(); 
    }); 
}); 
+0

Masz dodatkowy przecinek po 'opowiada: {stdio: 'dziedziczenia'}' ale piękne wielkie dzięki !!! – GTDev

+0

Jest tam celowo;) Przecinki końcowe są fajne w węźle> = 0,8. Przynajmniej tak myślę, heh –

Powiązane problemy