Bloguear desde cualquier sitio: la magia del scripting

Ahora puedo publicar gilipolleces en cuanto se me ocurran

NOTA GENIAL

Este post está escrito enteramente desde el teléfono como prueba de que mi sistema funciona, y estoy super feliz

Problema: fricción

Uno de los obstáculos mentales que me impedía escribir en un blog era la flexibilidad. Cuando se me ocurren cosas que escribir suele ser en la calle, en mitad del trabajo, en una montaña rusa boca abajo... Sin embargo, cuando quería plasmar esa idea que sabía que se me iba a olvidar en algún sitio, tenía dos opciones:

  • Escribir en algún otro sitio esa idea rezando con que no se me iba a olvidar copiarla en el blog
  • No escribir nada y esperar hasta que llegase a mi casa o tuviese un portátil a mano. Ninguna de estas opciones era viable, así que me rendí.

Ayer se me encendió una de las muchas bombillas inútiles que se me encienden, y me di cuenta que ya podía hacer eso que quería, solo que tenía que montarlo. Ya tengo:

  • Mi blog flexible, puedo añadir posts sin preocuparme del código
  • Mi propia instancia de Git, donde puedo subir ese código
  • Un servidor que compila y publica el código automáticamente sin preocuparme de nada

Es perfecto. Le estuve dando vueltas a lo último que faltaba: una aplicación que me permitiese escribir en Markdown fácilmente en cualquier sitio cuando quisiera sin tener que configurarla mucho.

Solución: Termux

Termux es una aplicación que te permite tener una terminal Linux en Android. En mi bombilla ponía lo siguiente:

  1. Usa Termux para descargar el blog del repositorio
  2. Edita lo que te salga de las narices
  3. Vuelve a publicarlo

Claro que puedo hacer eso, pero si ya es un poco tedioso escribir comandos en terminal es aún peor con el teclado del teléfono. Es más, lo odio. Pero aquí vino mi siguiente bombilla:

  1. Escribir scripts en Termux para no tener que usar la terminal
  2. Editar lo que quiera con una aplicación externa

Ya de antes sabía que puedes compartir el sistema de archivos de Android con Termux, pero nunca había pensado eso, así que me puse manos a la obra.

Mientras clonaba el repositorio, me puse a buscar una forma cómoda de ejecutar los scripts, y encontré de chiripa el Widget de Termux, que permite preparar scripts y ejecutarlos con un botón sin tener siquiera que abrir la aplicación. Perfecto. Los scripts se guardan en la carpeta "~/.shortcuts", así que me hice un script llamado "blog_push.sh":

#!/bin/bash

REPO="$HOME/storage/shared/Documents/blog"
cd "$REPO" || exit 1

MSG=$(termux-dialog text -t "Mensaje del commit" | jq -r '.text')
[ -z "$MSG" ] && exit 1

git fetch origin
git rebase origin/main || true

git add -A
git commit -m "$MSG" || exit 0

git rebase origin/main || git rebase --abort

git push origin main

termux-toast "Publicado!"

Este script actualiza el repositorio local, pide un nuevo nombre de commit con termux-dialog, que te pone un diálogo de android nativo y mola muchísimo, y hace un último pull por si hay conflictos antes de pushear al repositorio. De aquí ya se actualiza automáticamente el servidor web y ya estaría

Ahora agregamos un acceso directo a este script en el inicio y se hizo la magia:

Ahora solo quedaría buscar una manera de subir multimedia de forma cómoda, y ya tendría mi super mega blogging cool system 2000 hd pro max funcional y listo para mis tonterías.

Conclusión

Haciendo esto he descubierto que Termux tiene mucha flexibilidad y posibilidades que antes no se me habían ocurrido, y quizás hago muchos mas scripts más complejos para automatizar más cosas. Iré posteando conforme se me vayan ocurriendo, quizás necesite hacer hasta una categoría entera solo para eso. Lo que hace la procrastinación...