我使用Rakefile
执行一些常规任务,例如编译,链接等。
当编译失败时,ruby显示完全回溯,其中发生任务错误,但它对我来说真的没用,甚至更多:这个回溯隐藏了编译错误。
$ 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'
...
如何在“rake aborted!”之后隐藏所有内容! ?
答案 0 :(得分:6)
您似乎在rake任务中使用“sh”命令来启动编译器。在这种情况下,您应该捕获RuntimeError,以便得到此错误。像这样:
task "foo" do
begin
sh "bar"
rescue RuntimeError => e
puts e.message
exit(1)
end
end