# Author:       Li Junhao           l@x-cmd.com     # xrc
# shellcheck    shell=sh            disable=SC3043,SC2034

# : <<'DOCTEST'
# > x job put 3 sleep 3s; x job put 3 sleep 3s; x job put 3 sleep 3s; x job active
# 3
# > x job put 2 sleep 3s; x job put 2 sleep 3s; x job put 2 sleep 3s; [ "$(x job active)" -le 2 ] && echo yes
# yes
# DOCTEST

x log init job

xrc:mod:lib     job             design2022s1 pool log failfast/main run foreach

# TODO: Resumable job design: when fail, provide a way to resume the job interactively.
___x_cmd_job___main(){
    local X_help_cmd='x help -m job'; help:arg:parse
    local op="${1}"; [ "$#" -eq 0 ] || shift
    case "$op" in
        run|foreach|log|active|offer|put|report|wait|\
        failfast)
                                ___x_cmd_job_"$op" "$@" ;;        # This is the future.

        pool)                   ___x_cmd_job_pool "$@" ;;       # Deprecated design

        *)                      help:show:ret:64 ;;
    esac
}

