#!/usr/bin/env bash
# exit_with_status — calcula el exit code estandar a partir de contadores de pasos

# exit_with_status <total_steps> <ok_steps> <failed_steps>
#
# Calcula el exit code estandar:
#   0 — todos los pasos exitosos (failed_steps == 0)
#   1 — todos los pasos fallaron (ok_steps == 0)
#   2 — resultado parcial (hay ok y failed)
#
# Imprime el codigo a stdout y sale con ese codigo.
exit_with_status() {
    local total_steps="$1"
    local ok_steps="$2"
    local failed_steps="$3"

    local code

    if [[ "$failed_steps" -eq 0 ]]; then
        code=0
    elif [[ "$ok_steps" -eq 0 ]]; then
        code=1
    else
        code=2
    fi

    echo "$code"
    return "$code"
}
