Tôi mới sử dụng Thor (và Ruby) và tôi đang xem xét sử dụng nó trong một tập lệnh xây dựng, vì nó được cho là có thể thay thế cho Rake (do đó tạo ra). Tuy nhiên sau một thử nghiệm ngắn, tôi bị nhầm lẫn về trạng thái lỗi mà nó trả về. Tôi đã nhanh chóng đi qua wiki nhưng chưa thấy bất kỳ đề cập nào về điều đó.Trạng thái thoát Ruby/Thor trong trường hợp lỗi
Với chỉ là người đầu tiên "Ví dụ đơn giản", test.thor
:
class Test < Thor
desc "example", "an example task"
def example
puts "I'm a thor task!"
end
end
phiên bản #:
eruve>thor version
Thor 0.18.1
Tôi đã thử các sau đây, một lệnh sai lầm về mục đích:
eruve>ruby --version; thor test:example badarg; echo exit status: $?
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin10.8.0]
ERROR: thor example was called with arguments ["badarg"]
Usage: "thor test:example".
exit status: 0
Vì vậy, đã có một lỗi nhưng nó thoát với tình trạng 0 dù sao ... có nghĩa là tôi không muốn sử dụng nó trong một (n on-ruby) script, nếu không script sẽ tiếp tục chạy mặc dù nó sẽ kết thúc. Các lỗi tiếp theo có thể khó phân tích.
tôi phải mất một cái gì đó, vì thế câu hỏi của tôi:
Có một cách dễ dàng để có được một tình trạng khác không theo mặc định trong trường hợp có lỗi (tập tin cấu hình, vv)?
Nếu không, tôi phải làm gì để làm đúng?
Cảm ơn bạn.
+1 bởi vì nó dẫn đến hack (xem câu trả lời của tôi), mặc dù không trực tiếp sử dụng được, cụ thể là giải pháp bên ngoài Ruby. – eruve