# shellcheck shell=dash
# enhance the
___x_cmd_docker_info(){
    [ $# -gt 0 ] || {
        ___x_cmd_docker_info_app
        return
    }

    local op="$1"; shift
    case "$op" in
        -h|--help)  ___x_cmd help -m docker info         ;;
        app|"")     ___x_cmd_docker_info_app             ;;
        *)          ___x_cmd_docker_info_main "$op" "$@" ;;
    esac
}

___x_cmd_docker_info_app(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_chatty; then
        local ___X_CMD_JO_NAV_FINAL_COMMAND=
        local ___X_CMD_JO_NAV_KP=
        local ___X_CMD_JO_NAV_VALUE=
        ___x_cmd jo nav -- ___x_cmd docker info --json
    else
        ___x_cmd_docker_info_main
    fi
}

___x_cmd_docker_info_main(){
    local IMAGE_OPTS=
    while [ $# -gt 0 ]; do
        case "$1" in
            -j|--json)
                ___x_cmd cmdstr IMAGE_OPTS --format json
                shift ;;
            -f|--format)
                [ -n "$2" ] || {
                    docker:error "The '$1' parameter cannot be empty."
                    return 1
                }
                ___x_cmd cmdstr IMAGE_OPTS "$1" "$2"
                shift 2 ;;
            *)
                docker:error "Unkown options ==> $1";  return 64 ;;
        esac
    done
    eval ___x_cmd___docker_origin info "$IMAGE_OPTS"
}