

# x snap jq <arg>
# x apt snap jq <arg>

___x_cmd_apt_snap(){
    [ $# -gt 0 ]    ||  set -- --help

    local pkgnamelist="$___X_CMD_SNAP_APK_NAMELIST"

    while [ $# -gt 0 ]; do
        case "$1" in
            -h|--help)          ___x_cmd help -m apt snap "$@"; return 0 ;;
            -n|--namelist)      [ $# -ge 2 ] || N=apt M="Please provide argument after $1" log:ret:64 ; pkgnamelist="$2"; shift 2 ;;
            *)                  break
        esac
    done

    local cmd="$1"; shift

    ___x_cmd_hascmd "$cmd" || {

        [ -n "$pkgnamelist" ] || {
            local x_=""
            if ___x_cmd snap --whichpkg_ apt "$cmd"; then
                pkgnamelist="$x_"
            else
                pkgnamelist="$cmd"
            fi
        }

        ___x_cmd_apt___haspriv || {
            apt:error --next "sudo apt install -y $pkgnamelist"  \
                "Not in root mode. You can install $pkgnamelist mannualy."
            return 1
        }

        ___x_cmd_apt___hasindex || {
            ___x_cmd_cmds apt update || apt:error "Fail to update index"
        }

        eval ___x_cmd_cmds apt install -y "$pkgnamelist" || {
            apt:error --next "apt install -y $pkgnamelist"  \
                "Fail to isntall $pkgnamelist. You can try it manually"
            return 1
        }
    }

    ___x_cmd snap --runcmd "$cmd" "$@"
}

