upgrade 命令

自动升级 docdoc:取仓库最新版本标签全局重装 CLI,检测到 systemd 服务时自动重启。

语法

docdoc upgrade [--ref <ref>] [--config <path>]

参数

参数 说明 必填 缺省
--ref <ref> 安装的 git ref(分支或 vX.Y.Z 标签) 否 最新 vX.Y.Z 版本标签
--config <path> 配置文件路径,读取 upgrade.token 凭据项 否 默认路径 ~/.config/docdoc/config.yaml

行为说明

  • 凭据解析链(逐项校验对仓库 Xeegam/docdoc 的实际访问权限,无效自动落下一项):
    1. 配置文件 upgrade.token(GitHub PAT)
    2. gh 已认证账号(gh auth token)
    3. 交互输入:要求输入有效凭据,校验通过前循环询问,留空中止;输入前项均无效时才进入此步
  • 非交互环境(cron、管道)无凭据可用时直接报错中止,不挂起等待输入
  • 版本探测使用 GitHub CLI(gh api repos/Xeegam/docdoc/tags),凭据经 GH_TOKEN 注入;安装执行 pnpm i -g(凭据以 x-access-token 形式内嵌于仓库 URL,不依赖 git 凭据助手)
  • 缺省取全量版本标签中最大的 vX.Y.Z;与当前版本相同则不重装,打印「已是最新版本」,--ref 指定时跳过比较直接安装(可强制重装或安装 main)
  • 安装后若存在 /etc/systemd/system/docdoc.service,自动 systemctl restart docdoc 使新版本生效;无 systemd 服务则跳过
  • 升级到运行中的服务是安全的:安装完成才重启,期间旧版本继续服务
  • 命令幂等且非交互(凭据需来自配置文件或 gh 认证),可加入 cron 定时自动升级,例如 0 4 * * * docdoc upgrade
  • 交互输入的凭据仅本次生效;持久化请写入配置文件 upgrade.token

输出示例

==> 最新版本 v0.6.1,当前 0.6.0
==> 安装 docdoc CLI (ref: v0.6.1)
==> 已重启 systemd 服务 docdoc.service
升级完成:0.6.0 → 0.6.1

已是最新版本时:

已是最新版本:v0.6.1(强制重装可用 docdoc upgrade --ref v0.6.1)