Wanoohe Blog
Blog CLIfor Tyndall · v0.5.0

05 · Automation

让输出进入管道,同时保留失败语义

使用 JSON、非交互确认、环境变量和 revision,把人工流程逐步变成可审计脚本。

结构化输出

PowerShell 读取 JSON
$posts = blog post list --status draft --json | ConvertFrom-Json
$posts.items | Select-Object id,title,status

只把 stdout 送进 JSON 解析器;错误仍在 stderr,命令失败时检查 $LASTEXITCODE

Bash 与 jq 管道
blog post list --status draft --json | jq -r '.items[] | [.id, .title] | @tsv'
test ${PIPESTATUS[0]} -eq 0

管道中不仅要检查最后一个程序,也要检查 blog 本身是否成功。

非交互写操作

先 dry-run,再明确跳过确认
blog post publish 42 --dry-run
blog post publish 42 --yes

没有 TTY 且操作需要确认时,CLI 会失败而不是挂起。--yes 是显式承担副作用,不是通用“强制成功”。

处理 409 冲突

  1. 停止重试同一个 update;409 表示前提已经变化,不是瞬时网络错误。
  2. 重新执行 blog post pull <id> remote.md 获取新快照。
  3. 用编辑器或 diff 工具把本地修改合并到新快照。
  4. 再次 validatediff,然后带说明执行 update
  5. 需要恢复旧内容时先查看 versions,再显式 rollback