[Experience sharing] Workbuddy最新deb安装包获取,让他自己写了个脚本
Tofloor
poster avatar
佩奇
deepin
2026-09-24 12:45
Author

脚本效果
image.png

脚本内容

#!/usr/bin/env bash
#
# wb-update-url.sh — 获取 WorkBuddy Linux 更新包(deb)的官方下载直链
#
# 背景:WorkBuddy 官网下载区没有 Linux 入口,Linux 版更新源由客户端内置逻辑
# 调用,接口格式:
#   https://copilot.tencent.com/v2/update?platform=<平台>&version=<当前版本>
# 其中 version 表示"当前已安装版本",接口返回最新版本信息;已是最新时返回空体。
#
# 平台参数(本脚本按 /etc/os-release 自动探测):
#   UOS 系统   -> workbuddy-linux-uos-
#   麒麟系统   -> workbuddy-linux-kylin-
#   其他发行版 -> workbuddy-linux--deb      (arch: x64 / arm64)
#
# 依赖:curl 必须;python3 / jq 任一用于解析 JSON(都没有时自动降级为 grep)。

set -euo pipefail

API_BASE="${WORKBUDDY_UPDATE_API:-https://copilot.tencent.com/v2/update}"
DOWNLOAD=0
OUTDIR="."
PLATFORM_OVERRIDE=""
REQUESTED_VERSION=""

die() { echo "错误: $*" >&2; exit 1; }
info() { echo "==> $*"; }

usage() {
  cat <<'USAGE'
用法: wb-update-url.sh [选项] [版本号]

  根据客户端提示的新版本号,获取 WorkBuddy Linux 更新包(deb)的官方下载直链。

参数:
  版本号                   客户端提示的新版本,如 5.5.6.38337834(可带 V 前缀)。
                           缺省时自动读取本机已安装的 workbuddy 版本。

选项:
  -d, --download           查询后直接下载安装包并校验完整性
                           (MD5 与腾讯云 COS 存储元数据比对)
  -o, --output-dir    下载保存目录(默认: 当前目录)
  -p, --platform       手动指定平台参数,默认按系统自动探测。
                           常用值:
                             workbuddy-linux-x64-deb
                             workbuddy-linux-arm64-deb
                             workbuddy-linux-uos-x64
                             workbuddy-linux-kylin-x64
  -h, --help               显示本帮助

环境变量:
  WORKBUDDY_UPDATE_API     更新接口地址
                           (默认: https://copilot.tencent.com/v2/update)

示例:
  ./wb-update-url.sh                        # 用已安装版本查询最新 deb 链接
  ./wb-update-url.sh 5.5.6.38337834         # 用客户端提示的版本号查询
  ./wb-update-url.sh -d V5.5.6.38337834     # 查询并下载到当前目录
  ./wb-update-url.sh -p workbuddy-linux-uos-x64   # 手动指定平台
USAGE
}

# ---------------- 参数解析 ----------------
while [[ $# -gt 0 ]]; do
  case "$1" in
    -d|--download)   DOWNLOAD=1 ;;
    -o|--output-dir) [[ $# -ge 2 ]] || die "$1 需要一个目录参数"; OUTDIR="$2"; shift ;;
    -p|--platform)   [[ $# -ge 2 ]] || die "$1 需要一个平台参数"; PLATFORM_OVERRIDE="$2"; shift ;;
    -h|--help)       usage; exit 0 ;;
    -*)              die "未知选项: $1(用 -h 查看帮助)" ;;
    *)               REQUESTED_VERSION="$1" ;;
  esac
  shift
done

# ---------------- 架构与发行版探测 ----------------
detect_arch() {
  case "$(uname -m)" in
    x86_64)        echo "x64" ;;
    aarch64|arm64) echo "arm64" ;;
    *) die "不支持的 CPU 架构: $(uname -m)(可用 -p 手动指定平台参数)" ;;
  esac
}

detect_platform() {
  local arch os_id=""
  arch="$(detect_arch)"
  if [[ -r /etc/os-release ]]; then
    os_id="$(. /etc/os-release && echo "${ID:-}" | tr '[:upper:]' '[:lower:]')"
  fi
  case "$os_id" in
    uos)   echo "workbuddy-linux-uos-${arch}" ;;
    kylin) echo "workbuddy-linux-kylin-${arch}" ;;
    *)     echo "workbuddy-linux-${arch}-deb" ;;
  esac
}

# ---------------- 更新源查询 ----------------
# 用法: api_query 
Reply Favorite View the author
All Replies
avatar
kookboy
deepin
2026-09-24 13:13
#1

like

Reply View the author
avatar
晚秋(lateautumn)
Moderator
2026-09-24 14:55
#2

厉害applaud

Reply View the author
avatar
@Mr.Sun
deepin
2026-09-24 16:22
#3

kissing_heart

Reply View the author
avatar
kinggochj
deepin
2026-09-24 16:28
#4

👍

Reply View the author
avatar
鲜衣怒马
deepin
2026-09-24 16:41
#5

已用上 5.6.2 Linux版

Reply View the author
avatar
Tsui
deepin
2026-09-24 20:21
#6

感谢,终于找到安装包了

Reply View the author
avatar
陈云
deepin
2026-09-25 21:09
#7

This script is really helpful for getting new packages.

Reply View the author
avatar
佩奇
deepin
2026-09-29 14:34
#8

官网开下载了😂 ,以后可以直接下载了

Reply View the author