Files
infra/stacks/rpi-backup/bin/vault-archive
T

22 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Ежечасный (коммит только при изменениях) ОДНОСТОРОННИЙ архив Obsidian-vault в gitea (ruzzy/MyVault).
# Vault синхронизирует Obsidian Sync (obsidian-sync.service, ~astra/vault); git — только история:
# commit + push, никогда не pull — в vault отсюда ничего не попадает.
# Git-каталог отдельно (~astra/vault.git, core.worktree=~astra/vault), чтобы в vault не было .git.
# Скрытые файлы (.obsidian, данные плагинов, .gitignore) Sync на rpi не приносит — их не трогаем,
# иначе git записал бы их удаление.
set -euo pipefail
cd "$HOME"
G=(git --git-dir="$HOME/vault.git" --work-tree="$HOME/vault")
systemctl is-active -q obsidian-sync || { echo "obsidian-sync не работает — архив устарел бы, пропуск"; exit 1; }
"${G[@]}" add -A -- . ":(exclude).*" ":(exclude)**/.*"
if "${G[@]}" diff --cached --quiet; then
echo "изменений нет"
else
stat=$("${G[@]}" diff --cached --shortstat)
"${G[@]}" commit -q -m "Архив vault $(date "+%F %H:%M")" -m "$stat"
echo "коммит: $stat"
fi
"${G[@]}" push -q origin HEAD:main
echo "OK: $("${G[@]}" log -1 --format='%h %s')"