# shellcheck shell=dash

xrc:mod:lib     docker      daemon/mirror   daemon/proxy
___x_cmd_docker_daemon(){
    [ "$#" -gt 0 ] || set - --help

    local op="$1";  shift
    case "$op" in
        restart|mirror|proxy)
            ___x_cmd_docker_daemon_"$op" "$@"
        ;;
        -h|--help)
            ___x_cmd help -m docker daemon;  return
        ;;
        *)
            N=docker M="Unknown subcmd for docker daemon -> $op" log:ret:64
        ;;
    esac
}

___x_cmd_docker_daemon_check(){
    local x_
    ___x_cmd os name_
    case "$x_" in
        darwin|win)
            N=docker M="Currently don't support changing daemon config using commandline in macos/windows. You can open the docker desktop setting pannel to configure." log:ret:1
            ;;
        linux)
            [ -d /etc/docker ] || N=docker M="Cannot locate directory -> /etc/docker" log:ret:1
            ;;
        *)
            N=docker M="Currently don't support changing daemon config using commandline in $x_." log:ret:1
    esac
}

___x_cmd_docker_daemon_restart(){
    ___x_cmd_docker_daemon_check     || return 1
    case "$1" in
        -h|--help)  ___x_cmd help -m docker daemon restart; return ;;
    esac

    if ___x_cmd_hascmd systemctl; then
        docker:info "run command -> x sudo systemctl daemon-reload"
        ___x_cmd sudo systemctl daemon-reload

        docker:info "run command -> x sudo systemctl restart docker"
        ___x_cmd sudo systemctl restart docker
        return
    fi

    # local sockfp="$HOME/Library/Containers/com.docker.docker/Data/backend.sock"
    # if [ -e "$sockfp" ]; then
    #     ___x_cmd curl -X POST \
    #         -H 'Content-Type: application/json'     \
    #         -d '{ \"openContainerView\": true }'    \
    #         -kiv                                    \
    #         --unix-socket "$sockfp"                 \
    #         http://localhost/engine/restart
    #     return
    # fi

    # Windows desktop ?
    # ...

}
