Co to znamená
Každý příkaz končí jedním z pevné sady kódů: 0 v pořádku, 2 chybné použití, 10 nesplněná smlouva, 11 nalezen drift, 12 chybějící artefakt, 13 vnitřní chyba, 15 odmítnuto. Záměrně neexistuje kód, který by znamenal „něco bylo špatně, ale pokračuj“. Volající — včetně git hooku — je musí propagovat a doctor prohledává řádky hooků na || true a || exit 0 kolem volání Majordomus.
Princip
Kódy jsou konstanty v lib/common.sh; každý příkaz končí přes ně. Příkazy jen pro čtení rozlišují selhávající nález (10) od informativního driftu (11), aby hook mohl blokovat na první a skript si druhého všimnout, aniž by je zaměnil. finish --check končí kódem 0, když není aktivní žádná úloha, takže pre-push hook nikdy neblokuje repozitář, který nemá co vynucovat.
Jak to vidět
majordomus doctor; echo $? # 0 healthy, 10 failures, 12 something missing
majordomus watch; echo $? # 0 no drift, 11 driftCo nepokrývá
Majordomus nemůže přimět volajícího, aby kódy ctil; prohledávání hooku doctor zachytí dva běžné způsoby, jak je ignorovat, ne každý možný.
Proč existuje
Kontrakt vynucování zdrojového prostředí musel písemně vypsat, že neexistuje „varovat a pokračovat“, „měkké selhání“ ani „poradní blok“ — protože hooky se stále psaly s || true a jedna zdokumentovaná oprava nahradila || true explicitním blokem set +e „se stejným chováním a bez označeného vzoru“.