# shellcheck shell=dash

# Introducing
# ___X_CMD_DOCKER_IMAGE_NAME_PREFIX

___x_cmd_docker_image(){
    [ $# -gt 0 ]    || set -- ls

    local op="$1";      shift
    case "$op" in
        -h|--help)     ___x_cmd help -m docker image              ;;
        # app|"")        ___x_cmd_docker_images app                 ;;
        ls|exist|id|lsid|rma)
                        ___x_cmd_docker_image_"$op"           "$@" ;;
        refit)         ___x_cmd_docker_refit                 "$@" ;;

        *)             ___x_cmd___docker_origin image "$op"  "$@" ;;
    esac
}

___x_cmd_docker_image_ls(){
    ___x_cmd_docker_images "$@"
}

___x_cmd_docker_image_exist(){
    local repo="${1%%:*}"
    local tag="${1#*:}"

    [ "$repo" != "$1" ] || tag=latest

    ___x_cmd___docker_origin image ls | \
        ___x_cmd_cmds_awk -v repo="$repo" -v tag="$tag" -v code=1 \
            '(NR>1)&&($1==repo)&&($2==tag){
                code=0;
                exit 0;
            } END{ exit(code); }'
}

___x_cmd_docker_image_id(){
    local repo="${1%%:*}"
    local tag="${1#*:}"

    [ "$repo" != "$1" ] || tag=latest

    ___x_cmd___docker_origin image ls | \
        ___x_cmd_cmds_awk -v repo="$repo" -v tag="$tag" -v code=1 \
            '(NR>1)&&($1==repo)&&($2==tag){
                print $3
                code=0;
                exit 0;
            } END{ exit(code); }'
}

___x_cmd_docker_image_lsid(){
    ___x_cmd_docker_image_ls --tsv | awk 'NR>1{ print $1; }'
}

# remove all
___x_cmd_docker_image_rma(){
    ___x_cmd_docker_image_lsid | ___x_cmd line args -n 10 '___x_cmd docker image rm $@'
}

