ein Keller, viele Türen 🚪🔐
- Shell 100%
| docs | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| cliff.toml | ||
| LICENSE | ||
| pass-sync.sh | ||
| README.md | ||
pass-sync
Bidirektionaler git-Sync für den pass-Store: fetch, rebase, push. Konflikte werden laut gemeldet — nie automatisch aufgelöst.
Features
git fetch→git rebase --autostash origin/main→git push, wenn lokale Commits vorliegen- Offline: stiller No-op — der nächste Lauf holt alles nach
- Echt-Konflikt (derselbe Eintrag auf zwei Geräten geändert):
rebase --abort, laute Meldung vianotify-send(Linux) bzw.termux-notification(Android), der Store bleibt benutzbar — die Auflösung wählt ein Mensch - Gedacht als
post-commit-Hook des Stores (pass committet jede Änderung selbst) plus Timer-Backstop für die Gegenrichtung
Aufruf
pass-sync
Keine Argumente, keine Optionen. Store-Pfad via PASSWORD_STORE_DIR
(Default: ~/.password-store).
Voraussetzungen
bash,git, ein pass-Store als git-Repo mit Remoteorigin/ Branchmain- optional:
notify-send(Linux) odertermux-notification(Termux:API) für Konflikt-Alarme
Installation
git clone ssh://git@forgejo.mueller.network:2222/holm.tools.public/pass-sync.git
ln -s "$(pwd)/pass-sync/pass-sync.sh" ~/bin/pass-sync
Als Hook (~/.password-store/.git/hooks/post-commit, ausführbar):
#!/usr/bin/env bash
command -v pass-sync >/dev/null 2>&1 && pass-sync || true
exit 0
Timer-Backstop Linux (systemd --user, alle 15 min) oder Termux:
termux-job-scheduler --script ~/bin/pass-sync --period-ms 900000 --network any
Changelog
Siehe CHANGELOG.md — generiert via git-cliff.
Lizenz
MIT — siehe LICENSE.