Pregunta

Hago algunas tareas habituales con Rakefile, como compilación, vinculación, etc.

Cuando la compilación falla, Ruby muestra el retroceso completo en el que ocurre el error de la tarea, pero es realmente inútil para mí, aún más: este retroceso oculta los errores de compilación.

$ 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'
...

Cómo esconder todo después de "Rake abortado!" ?

¿Fue útil?

Solución

Parece que está utilizando el comando "SH" en la tarea de rastrillo para iniciar el compilador. En ese caso, debe atrapar un TimeRor de ejecución, para obtener este error. Algo como esto:

task "foo" do
  begin
    sh "bar"
  rescue RuntimeError => e
    puts e.message
    exit(1)
  end
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top