
___X_CMD_DOCKER_XIMG_CODEDIR="$___X_CMD_ROOT_MOD/docker/lib/ximg/data"

___x_cmd_docker_ximg_which(){
    local x_=
    ___x_cmd_docker_ximg_which_ "$@" || return $?
    printf "%s\n" "$x_"
}

___x_cmd_docker_ximg_which_(){
    local build_if_unfound=
    case "$1" in
        --build-if-unfound)       build_if_unfound=1;     shift ;;
    esac

    x_=""

    local script="$1"
    case "$script" in
        x/*|%*)
            ;;
        *)
            x_="$script"
            return
    esac

    ___x_cmd_docker_ximg___script_ "$script" || return; script="$x_"
    local md5; md5=$(x md5 "$script") || {
        docker:error "fail to get md5 ==> $script"
        return 1
    }

    ___x_cmd_docker_ximg_exist --md5 "$md5" || {
        if [ -z "$build_if_unfound" ];then
            return 1
        else
            ___x_cmd_docker_ximg_build "$script" || N=docker M="fail to build ==> $script" log:ret:1
        fi
    }

    x_="x/md5/$md5"
}
