2011-03-18 3 views
3

-je faire quelques tâches habituelles avec Rakefile, telles que la compilation, la liaison, etc.rubis force pour cacher backtrace sur exception

Lorsque la compilation échoue rubis affiche complet backtrace où l'erreur de tâche se produire, mais il est vraiment inutile pour moi, encore plus: ce backtrace cache les erreurs de compilation.

$ rake 
mkdir -p build 
llvm-as source/repl.ll -o build/repl.bc 
llvm-as: source/repl.ll:6:22: error: expected value token 
    call i32 @fputc(i8 'x', i32 0) 
       ^
rake aborted! 
Command failed with status (1): [llvm-as source/repl.ll -o build/repl.bc...] 
/usr/local/lib/ruby/1.9.1/rake.rb:993:in `block in sh' 
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `call' 
/usr/local/lib/ruby/1.9.1/rake.rb:1008:in `sh' 
/usr/local/lib/ruby/1.9.1/rake.rb:1092:in `sh' 
... 

Comment masquer tout après "rake aborted!" ?

+0

double possible de [? Comment supprimer Rails backtrace] (http://stackoverflow.com/questions/16304905/how-to-suppress-backtrace-in-rails) – Nakilon

Répondre

5

Il semble que vous utilisiez la commande "sh" dans la tâche rake pour démarrer le compilateur. Dans ce cas, vous devriez attraper RuntimeError, afin d'obtenir cette erreur. Quelque chose comme ceci:

task "foo" do 
    begin 
    sh "bar" 
    rescue RuntimeError => e 
    puts e.message 
    exit(1) 
    end 
end