脚本自动化
脚本自动化
在脚本中使用明确任务,不驱动 TUI 按键。并非所有命令支持 JSON,各插件字段也不同。
| 任务 | 结构化入口 |
|---|---|
| pzip 预演或打包 | --json |
| 图片压缩 | --json,选项位于输入路径前 |
| gstore 状态、列表、诊断 | 对应命令的 --json |
| Skill、Deployment 包状态 | 对应命令的 --json |
| 单插件更新检查 | update loc --check --json |
loc 普通统计和根 list 不假定支持 JSON。示例 Bash 脚本只检查归档计划,不创建 ZIP:
#!/usr/bin/env bash
set -euo pipefail
source_dir="${1:?usage: check-package.sh /path/to/project}"
report="$(mktemp)"
trap 'rm -f "$report"' EXIT
slothtool pzip "$source_dir" --dry-run --json > "$report"
node --input-type=module - "$report" <<'JS'
import fs from 'node:fs';
const result = JSON.parse(fs.readFileSync(process.argv[2], 'utf8'));
if (result.dryRun !== true || result.includedFileCount < 1) {
throw new Error('No valid archive plan');
}
console.log(`Ready: ${result.includedFileCount} files`);
JS
保存为 check-package.sh,再以实际目录执行 bash check-package.sh ./my-project。pzip 字段为 dryRun、includedFileCount;图片字段则有 FailedCount、SavedBytes,不能共用未经核对的解析器。
检查退出码、逐项失败与 warnings,不把进程结束当作全部成功。安装默认解析正式 Release,没有可假设的通用插件 --version 参数。
--yes、覆盖、清理和同步冲突策略会改变数据,只有明确任务范围时才使用,不为消除交互而统一附加。