Ruby / Thor beendet den Status im Falle eines Fehlers

8

Ich bin neu bei Thor (und bei Ruby) und ich überlege, es in einem Build-Skript zu verwenden, da es gesagt wird, dass es ein Ersatz für Rake (also für Make) sein kann. Nach einer kurzen Testphase bin ich jedoch verwirrt über den Fehlerstatus, den es zurückgibt. Ich bin schnell durch das Wiki gegangen, habe aber noch nichts davon erwähnt.

Mit nur dem ersten "Simple Example", test.thor :

%Vor%

Version #:

%Vor%

Ich habe folgendes versucht, einen fehlerhaften Befehl absichtlich:

%Vor%

Es gab also einen Fehler, aber es wird trotzdem mit dem Status 0 beendet ... was bedeutet, dass ich es lieber nicht in einem (nicht-Ruby) Skript verwenden würde, sonst würde das Skript weiterlaufen, obwohl es beendet werden sollte. Nachfolgende Fehler können schwierig zu analysieren sein.

Ich muss etwas vermissen, daher meine Fragen:

  • Gibt es einen einfachen Weg, um im Fehlerfall (Konfigurationsdatei, etc.) standardmäßig einen Nicht-Null-Status zu erhalten?

  • Wenn nicht, was soll ich tun, um es richtig zu machen?

Danke.

    
eruve 21.06.2013, 18:24
quelle

3 Antworten

2

Basierend auf Bundlers Lösung (vielen Dank @fontno) und weiteren Untersuchungen auf meiner Seite, hier ist ein Hack, um es mit einer normalen Shell arbeiten zu lassen. ACHTUNG: es ist nicht elegant, druckt den Ausnahme-Stack-Mist aus, aber ich denke, das funktioniert (bitte zögere nicht, mir etwas anderes zu sagen).

%Vor%

Wie oben geschrieben, hat es das gleiche Verhalten wie zuvor (glaube ich). Nun, nachdem die # von Thor#ough entfernt wurde, sollte sie mit dem Status 1 beendet werden, wenn Thor eine Error erhöht hat, wodurch eine gewisse Kontrolle von z.B. eine nicht-rubinrote Schale.

%Vor%

Prost. PS: Ich frage mich, gibt es in Thor so viele Fallstricke? Wenn es ein erwartetes Verhalten ist, ist seine Absicht / Philosophie nicht kompatibel mit den Bedürfnissen meines Projekts ... Hacks sind keine zuverlässige Lösung.

    
eruve 22.06.2013, 05:28
quelle
18

Ich weiß, dass dies bereits beantwortet wurde, aber ich denke, das ist eine bessere Antwort, also dachte ich, ich würde es trotzdem beitragen.

Thor verfügt über eine Methode, die Sie verwenden können, um das Verhalten zu ändern, so dass Fehler Codes verursachen, die nicht Null sind. Es ist nicht sehr gut dokumentiert (IMHO).

%Vor%

Der Standardwert hierfür ist unerklärlicherweise false . Ich weiß nicht, warum irgendjemand möchte, dass er sich so persönlich benimmt. Thor-Problem 244 spricht auch das an.

    
ZombieDev 28.08.2013 13:57
quelle
1

Gute Frage. Das ist mir auch aufgefallen, als ich ein thor für ein Projekt verwendet habe. Soweit ich das beurteilen kann, ist dies erwartetes Verhalten. Diese Pull-Anforderung für bundler enthält eine interessante Lösung, die für Sie geeignet sein könnte.

Sie haben das Thor-Debug-Flag aktiviert, damit sie den Fehler abfangen und den entsprechenden Exit-Status festlegen können

%Vor%     
fontno 21.06.2013 20:34
quelle

Tags und Links