Retour avec une erreur ❌
Si vous revenez avec une erreur (c'est-à-dire un code de sortie de 1
), vous voudrez utiliser abort
qui prend également une chaîne de caractères optionnelle qui sera affichée à la sortie :
task :check do
# If any of your checks fail, you can exit early like this.
abort( "One of the checks has failed!" ) if check_failed?
end
Sur la ligne de commande :
$ rake check && echo "All good"
#=> One of the checks has failed!
Retour avec succès ✅
Si vous revenez sans une erreur (c'est-à-dire un code de sortie de 0
), vous voudrez utiliser exit
qui n'est pas prend un paramètre de type chaîne.
task :check do
# If any of your checks fail, you can exit early like this.
exit if check_failed?
end
Sur la ligne de commande :
$ rake check && echo "All good"
#=> All good
C'est important si vous l'utilisez dans une tâche cron ou quelque chose qui doit faire quelque chose par la suite en fonction de la réussite ou non de la tâche rake.
Bonus : Retour avec une erreur à partir d'un rescue
sans la trace de la pile.
Par défaut, si vous utilisez abort
à l'intérieur d'un rescue
il affichera l'intégralité de la trace de la pile, même si vous n'utilisez que le bloc abort
sans relancer l'erreur.
Pour contourner ce problème, vous pouvez fournir un code de sortie non nul à la fonction exit
comme :
task :check do
begin
do_the_thing_that_raises_an_exception
rescue => error
puts error.message
exit( 1 )
end
end