Código de saída
0 deu certo, 1 deu errado, 2 foi chamado errado, 128 + N morreu por sinal — e quem lê cada um.
O código de saída é a única coisa que um processo diz ao programa que o chamou sem que alguém leia a saída. O CI decide por ele, o shell decide por ele (&&), o orquestrador decide por ele se reinicia.
| Código | Quer dizer | Quem produz |
|---|---|---|
| 0 | deu certo | o fim normal do programa |
| 1 | rodou e deu errado | um erro não tratado |
| 2 | foi chamado errado | Cli.comando com argumento inválido; dataforge abi com quebra |
| 128 + N | morreu pelo sinal N | 143 = SIGTERM, 130 = SIGINT (Ctrl+C) |
| qualquer outro | o que você decidir | OS.exit(n) |
dataforge
adopt Arcane.OS as OS
action conferir(entrada):
given len(entrada) is 0:
out "nada a processar"
OS.exit(0) // não é erro: só não havia o que fazer
yield len(entrada)
assert conferir([1, 2, 3]) is 3