


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

    local pkgnamelist="$___X_CMD_SNAP_APK_NAMELIST"

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

    local cmd="$1"; shift

    ___x_cmd_hascmd "$cmd" || {
        pkgnamelist="${pkgnamelist:-"$cmd"}"

        [ -w /etc/apk/repositories ] || {
            apk:error --next "sudo apk add $pkgnamelist"  \
                "Not in root mode. You can install $pkgnamelist mannualy."
            return 1
        }
        eval ___x_cmd_cmds apk add --wait 86400 "$pkgnamelist" || {
            apk:error --next "apk add $pkgnamelist"  \
                "Fail to isntall $pkgnamelist. You can try it manually"
            return 1
        }
    }

    if [ -n "$sudomode" ]; then
        ___x_cmd snap --sudoruncmd "$cmd"  "$@"
    else
        ___x_cmd snap --runcmd "$cmd"  "$@"
    fi
}

