Ariver
2026-08-25 7dd59f950be062acdaf822d9ddc7a439445027b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/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