| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/bin/bash
- # Hugo 文件监控守护进程
- # 监控 Obsidian 内容目录,自动重新编译
- HUGO_DIR="/home/zhn/.openclaw/workspace/skills/robdaily/deploy"
- CONTENT_DIR="/home/zhn/.openclaw/workspace/skills/robdaily/site/content"
- LOG_FILE="/tmp/hugo-watch.log"
- LOCK_FILE="/tmp/hugo-rebuild.lock"
- log() {
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
- }
- rebuild() {
- # 防抖:如果 30 秒内已执行过,跳过
- if [ -f "$LOCK_FILE" ]; then
- last_run=$(stat -c %Y "$LOCK_FILE" 2>/dev/null || echo 0)
- current_time=$(date +%s)
- if [ $((current_time - last_run)) -lt 30 ]; then
- return
- fi
- fi
-
- log "开始重新编译 Hugo..."
- cd "$HUGO_DIR"
- docker compose exec -T hugo-personal-site hugo --minify 2>&1 | tail -5 >> "$LOG_FILE"
- touch "$LOCK_FILE"
- log "Hugo 重新编译完成"
- }
- # 监听内容目录
- log "开始监控:$CONTENT_DIR"
- inotifywait -m -r -e modify -e create -e delete --exclude '\.swp$' "$CONTENT_DIR" |
- while read -r directory event filename; do
- log "文件变化:$event $filename"
- rebuild
- done
|