# shellcheck shell=dash

___X_CMD_CRON_LOG="${___X_CMD_ROOT_DATA}/cron/log"

___x_cmd_cron_service(){
    [ $# -gt 0 ]    ||      set -- status

    local op="$1";          shift
    case "$op" in
        -h|--help)          ___x_cmd help -m cron service "$@" ; return 0 ;;
        start|stop|restart|status|log|run)
                            ___x_cmd_cron_service_"$op" "$@"      ;;
        *)                  N=cron M="Unknown op -> $op" log:ret:64 ;;
    esac
}

___x_cmd_cron_service_start(){
    ___x_cmd service start      x-cron-daemon   --   x-cmd cron service run "$@"
}

___x_cmd_cron_service_restart(){
    ___x_cmd service restart    x-cron-daemon
}

___x_cmd_cron_service_stop(){
    ___x_cmd service stop       x-cron-daemon
}

___x_cmd_cron_service_status(){
    ___x_cmd service status     x-cron-daemon
}

___x_cmd_cron_service_log(){
    local ___X_CMD_TAIL_MAIN_OPTS=

    while [ $# -gt 0 ]; do
        case "$1" in
            --help|-h)  ___x_cmd help -m cron service log; return 0 ;;
            -n)         ___x_cmd cmdstr ___X_CMD_TAIL_MAIN_OPTS -n "$2";  arg:2:shift   ;;
            -f)         ___x_cmd cmdstr ___X_CMD_TAIL_MAIN_OPTS "$1";     shift         ;;
            *)          break       ;;
        esac
    done

    eval set -- "$___X_CMD_TAIL_MAIN_OPTS" "\"\$@\""

    ___x_cmd_cmds tail "$@" "$___X_CMD_CRON_LOG"
}

___x_cmd_cron_service_run(){
    ___x_cmd ensurefp "$___X_CMD_CRON_LOG"
    ___x_cmd_cron_run "$@" >> "$___X_CMD_CRON_LOG" 2>&1
}
