# x job foreach -m 10 'work "x-bash/$1"'

# TODO: add more mode in the future

xrc:mod     functor/latest

___x_cmd_job_foreach(){
    local ___X_CMD_JOB_FAILFAST_EVAL_MAX=10
    while true; do
        case "$1" in
            -m|--max)   ___X_CMD_JOB_FAILFAST_EVAL_MAX=$2; shift 2; continue ;;
            *)          break
        esac
    done

    (
        x:functor:consumer:init
        ___x_cmd_job_failfast_init "$___X_CMD_JOB_FAILFAST_EVAL_MAX"
        local each; while read -r each; do
            x job failfast put "$x_functor" "$each"
        done
    ) | (
        ___x_cmd_job_failfast_fini
    )
}
