#!/bin/zsh
|
# Knomo 维护自动脚本:去重 + 提取(#成链)
|
# 用法:
|
# zsh knomo_auto.sh # 真正去重 + 提取(--apply)
|
# zsh knomo_auto.sh --dry # 仅预览,不改动任何文件
|
# 触发:launchd 每日 04:00(不带参数=应用)/ 手动 Terminal 运行(按钮方案已于 2026-08-24 废弃)
|
# 完全本地、不依赖 WorkBuddy。脚本位于 vault 内 X2.Archived/scripts/。
|
|
# 路径全部相对脚本自身推导,迁移不影响
|
DIR="${0:A:h}"
|
VAULT="$(cd "$DIR/../.." && pwd)"
|
LOG="$DIR/logs/knomo_maintain.log"
|
PY=/usr/bin/python3
|
|
DRY=""
|
if [ "$1" = "--dry" ]; then DRY="--dry"; fi
|
|
# knomo_dedupe.py / knomo_extract.py 以「不带 --apply = 预览」为约定,
|
# 所以只在“应用模式”下补 --apply,预览模式什么都不加。
|
APPLY_ARG=""
|
if [ -z "$DRY" ]; then APPLY_ARG="--apply"; fi
|
|
mkdir -p "$DIR/logs"
|
{
|
echo "===== $(date) ====="
|
echo "--- [1/2] 去重 Memos-*.md 重复 memoblock ---"
|
"$PY" "$DIR/knomo_dedupe.py" --vault "$VAULT" $APPLY_ARG
|
echo "--- [2/2] 提取 #成链 memo -> X1.Knomo/Atom/ ---"
|
"$PY" "$DIR/knomo_extract.py" --vault "$VAULT" $APPLY_ARG
|
echo "===== done $(date) ====="
|
} >> "$LOG" 2>&1
|
|
# 给按钮/通知用的简短回显(stdout 不被重定向到日志)
|
if [ -n "$DRY" ]; then
|
echo "Knomo 预览完成(未改动任何文件)。详情见 $LOG"
|
else
|
echo "Knomo 维护完成(已去重 + 提取 #成链)。详情见 $LOG"
|
fi
|