grony
Hace un tiempo empecé a utilizar Obsidian para gestionar mis notas con facilidad. Obviando como un gigallón de detalles que hacen que Obsidian sea una gozada, un almacen de notas no es más que un directorio con archivos de texto. Es decir, un candidato perfecto para tener una "sincronización de pobres" usando Git y poder compartir notas entre varios ordenadores.
Actualización de agosto de 2023: me he pasado a Obsidian Sync y soy un feliz usuario. Sigo utilizando
grony
para tener varios repositorios sincronizados con su remote, pero ya no con Obsidian.
La semana pasada vi que hay un plugin para Obsidian que permite precisamente eso: hacer pull, commit y push a intervalos periódicos para tener cualquier cambio sincronizado usando un repositorio remoto como fuente de verdad.
El único inconveniente es que el autor (con excelente criterio por su parte, ya que es su proyecto y sus reglas) consideró que su plugin sólo sincronizaría vía repositorios alojados en Github. O al menos yo, en un alarde de torpeza natural sin precedentes, no he encontrado cómo hacerlo funcionar.
Suelo seguir una especie de norma no escrita (de esas que te saltas cuando te da la gana) de tener las cosas públicas en Github, las privadas en Gitlab y las extremadamente sensibles en un repositorio alojado en casa.
Actualización de noviembre de 2024: me he saltado tanto mi estúpida regla que al final he terminado llevándomelo todo a Github. No merece la pena lidiar con más de un proveedor.
Podría usar Github, pero esta vez quise ceñirme a mi norma y no publicar mis notas personales en un repositorio gestionado por un tercero. Y aunque el plugin parecía fácil de modificar, quise ir a lo rápido.
cron
Hacer un commit cada minuto y un pull+push cada 5 minutos es de lo más sencillo y rápido de implementar con cron
:
* * * * * cd <directorio> && git commit -m "Mensaje" > /dev/null 2>&1
*/5 * * * * cd <directorio> && git pull && git push > /dev/null 2>&1
Problema resuelto.
...
¿Problema resuelto?
El sueño de la razón produce monstruos
En algún momento a lo largo de los 5 minutos siguientes a dejar esos comandos planificados, pensé ¿y si lo generalizo un poco y me ahorro configurarlo en los demás ordenadores de casa?
Comencé con un sencillo script en Python al que, poco a poco, fui metiéndole más controles, más opciones, una refactorización por aquí...hasta que me di cuenta de estaba disfrutando tanto que había caído otra vez en la trampa.
Y es así, amigos, cómo terminé dedicando el resto del tiempo libre (ese periodo que transcurre entre que tu familia se duerme y tú caes muerto de cansancio) de un fin de semana a escribir grony
para poder ahorrarme 2 minutos la próxima vez.