git auto commit and push using crontab.org

· osiux's blog

#+LINK_HOME:   index.html
#+INCLUDE:     header.org

# git.sh

Desde 2011 que tengo mis bash scripts genéricos versionados en un repo git privado en el directorio ~/bin y cada tanto algunos de ellos maduran lo suficiente y pasan a formar parte de algún nuevo repo público en Codeberg 1, GitLab 2 o GitHub 3.

Pero mientras estos scripts están en ~/bin me despreocupo de realizar commits, es decir se autoversionan usando el crontab y un script llamado git.sh 4.

Gracias al plugin vim-gutter 5 puedo diferenciar rápidamente que líneas cambié hace 5 minutos, lo cual ayuda bastante cuando estoy refactorizando algo sobre la marcha.

# crontab

Aadapto git.sh a las necesidades puntuales de cada repo y crontab se ocupa de ejecutar git.sh cada 5 minutos y listo! si sucede algo con mi notebook, a lo sumo perdí 5 minutos y mantengo un historial versionado de todos los archivos imporantes, entre ellos estan logs, configs, passwords, journal, calendar y por supuesto mis preciados scripts :)


*/5 * * * * $HOME/log/git.sh
*/5 * * * * $HOME/bin/git.sh
*/5 * * * * $HOME/config/git.sh
*/5 * * * * $HOME/.password-store/git.sh
*/5 * * * * $HOME/.jrnl/git.sh
*/5 * * * * $HOME/git/osiux/wip/git.sh
*/5 * * * * $HOME/env/cal/git.sh

# bin-bash-utils

Si no recuerdo mal, la idea de autoversionar la obtuve del excelente y recomendado Organize Your Life In Plain Text! 6 cuando usaba a diario org-mode 7.

Viendo que pasaron 12 años desde que comencé a versionar ~/bin, aprovecho hoy para iniciar la versión pública de ~/bin en el repo bin-bash-utils 8 con esos scripts genéricos que todavían no tuvieron suerte para que los publique agrupados en algún otro repo público. Por ahora solo con git.sh XD

# ChangeLog