#!/usr/bin/env bash # Copyright 2025 eat-pray-ai & OpenWaygate # SPDX-License-Identifier: Apache-2.0 set -euo pipefail # Accept yutu executable path as first parameter YUTU_PATH="${1:-}" # If no path provided, build yutu if [[ -z "$YUTU_PATH" ]]; then echo "No yutu path provided, building yutu..." MOD="github.com/eat-pray-ai/yutu/cmd" Version="${MOD}.Version=$(git describe --tags --always --dirty)" Commit="${MOD}.Commit=$(git rev-parse --short HEAD)" CommitDate="${MOD}.CommitDate=$(git log -1 --date='format:%Y-%m-%dT%H:%M:%SZ' --pretty=%cd)" Os="${MOD}.Os=$(go env GOOS)" Arch="${MOD}.Arch=$(go env GOARCH)" Builder="${MOD}.Builder=${GITHUB_ACTOR:-$USER}" ldflags="-s -X ${Version} -X ${Commit} -X ${CommitDate} -X ${Os} -X ${Arch} -X ${Builder}" go mod download go build -ldflags "${ldflags}" -o yutu . trap 'rm yutu' EXIT chmod +x yutu YUTU_PATH="./yutu" else # Verify the provided path exists and is executable if [[ ! -f "$YUTU_PATH" ]]; then echo "Error: yutu executable not found at: $YUTU_PATH" exit 1 fi if [[ ! -x "$YUTU_PATH" ]]; then echo "Error: $YUTU_PATH is not executable" exit 1 fi echo "Using yutu at: $YUTU_PATH" fi # Run tests with the yutu executable "$YUTU_PATH" help "$YUTU_PATH" completion "$YUTU_PATH" version # yutu echo "======= agent =======" "$YUTU_PATH" agent --help echo "======= auth =======" "$YUTU_PATH" auth --help echo "======= mcp =======" "$YUTU_PATH" mcp --help # youtube api echo "======= activity =======" "$YUTU_PATH" activity --help echo "------- list -------" "$YUTU_PATH" activity list --help echo "======= caption =======" "$YUTU_PATH" caption --help echo "------- delete -------" "$YUTU_PATH" caption delete --help echo "------- download -------" "$YUTU_PATH" caption download --help echo "------- insert -------" "$YUTU_PATH" caption insert --help echo "------- list -------" "$YUTU_PATH" caption list --help echo "------- update -------" "$YUTU_PATH" caption update --help echo "======= channel =======" "$YUTU_PATH" channel --help echo "------- list -------" "$YUTU_PATH" channel list --help echo "------- update -------" "$YUTU_PATH" channel update --help echo "======= channelBanner =======" "$YUTU_PATH" channelBanner --help echo "------- insert -------" "$YUTU_PATH" channelBanner insert --help echo "======= channelSection =======" "$YUTU_PATH" channelSection --help echo "------- delete -------" "$YUTU_PATH" channelSection delete --help echo "------- list -------" "$YUTU_PATH" channelSection list --help echo "======= comment =======" "$YUTU_PATH" comment --help echo "------- delete -------" "$YUTU_PATH" comment delete --help echo "------- insert -------" "$YUTU_PATH" comment insert --help echo "------- list -------" "$YUTU_PATH" comment list --help echo "------- markAsSpam -------" "$YUTU_PATH" comment markAsSpam --help echo "------- setModerationStatus -------" "$YUTU_PATH" comment setModerationStatus --help echo "------- update -------" "$YUTU_PATH" comment update --help echo "======= commentThread =======" "$YUTU_PATH" commentThread --help echo "------- insert -------" "$YUTU_PATH" commentThread insert --help echo "------- list -------" "$YUTU_PATH" commentThread list --help echo "======= i18nLanguage =======" "$YUTU_PATH" i18nLanguage --help echo "------- list -------" "$YUTU_PATH" i18nLanguage list --help echo "======= i18nRegion =======" "$YUTU_PATH" i18nRegion --help echo "------- list -------" "$YUTU_PATH" i18nRegion list --help echo "======= member =======" "$YUTU_PATH" member --help echo "------- list -------" "$YUTU_PATH" member list --help echo "======= membershipsLevel =======" "$YUTU_PATH" membershipsLevel --help echo "------- list -------" "$YUTU_PATH" membershipsLevel list --help echo "======= playlist =======" "$YUTU_PATH" playlist --help echo "------- delete -------" "$YUTU_PATH" playlist delete --help echo "------- insert -------" "$YUTU_PATH" playlist insert --help echo "------- list -------" "$YUTU_PATH" playlist list --help echo "------- update -------" "$YUTU_PATH" playlist update --help echo "======= playlistImage =======" "$YUTU_PATH" playlistImage --help echo "------- delete -------" "$YUTU_PATH" playlistImage delete --help echo "------- insert -------" "$YUTU_PATH" playlistImage insert --help echo "------- list -------" "$YUTU_PATH" playlistImage list --help echo "------- update -------" "$YUTU_PATH" playlistImage update --help echo "======= playlistItem =======" "$YUTU_PATH" playlistItem --help echo "------- delete -------" "$YUTU_PATH" playlistItem delete --help echo "------- insert -------" "$YUTU_PATH" playlistItem insert --help echo "------- list -------" "$YUTU_PATH" playlistItem list --help echo "------- update -------" "$YUTU_PATH" playlistItem update --help echo "======= search =======" "$YUTU_PATH" search --help echo "------- list -------" "$YUTU_PATH" search list --help echo "======= subscription =======" "$YUTU_PATH" subscription --help echo "------- delete -------" "$YUTU_PATH" subscription delete --help echo "------- insert -------" "$YUTU_PATH" subscription insert --help echo "------- list -------" "$YUTU_PATH" subscription list --help echo "======= superChatEvent =======" "$YUTU_PATH" superChatEvent --help echo "------- list -------" "$YUTU_PATH" superChatEvent list --help echo "======= thumbnail =======" "$YUTU_PATH" thumbnail --help echo "------- set -------" "$YUTU_PATH" thumbnail set --help echo "======= video =======" "$YUTU_PATH" video --help echo "------- delete -------" "$YUTU_PATH" video delete --help echo "------- getRating -------" "$YUTU_PATH" video getRating --help echo "------- insert -------" "$YUTU_PATH" video insert --help echo "------- list -------" "$YUTU_PATH" video list --help echo "------- rate -------" "$YUTU_PATH" video rate --help echo "------- reportAbuse -------" "$YUTU_PATH" video reportAbuse --help echo "------- update -------" "$YUTU_PATH" video update --help echo "======= videoAbuseReportReason =======" "$YUTU_PATH" videoAbuseReportReason --help echo "------- list -------" "$YUTU_PATH" videoAbuseReportReason list --help echo "======= videoCategory =======" "$YUTU_PATH" videoCategory --help echo "------- list -------" "$YUTU_PATH" videoCategory list --help echo "======= watermark =======" "$YUTU_PATH" watermark --help echo "------- set -------" "$YUTU_PATH" watermark set --help echo "------- unset -------" "$YUTU_PATH" watermark unset --help