Descanso
Después de 4 días seguidos publicando y andando, al llegar el fin de semana, entre una cosa y la otra, no acabé trabajando.
Intenté que almenos uno de mis dos objetivos (caminar) siguiera intacto así que seguí saliendo un rato cada día.
Siempre tengo esta batalla entre si debo estar cada día para ganar el hábito o si también debo descansar para no quemarme...
Y finalmente la pereza parece apoderarse de mi y me acabo convenciendo que también debo descansar. No se si es lo mejor o no...
Automatizando
Después de trabajar hoy, seguía teniendo ese sentimiento de pereza, pero después de vencerlo, he decidido que era buen momento para buscar un sistema para automatizar la publicación de mi sitio web cada vez que hubiera un cambio.
Y después de varios intentos, he acabado creando un script .sh que se conecta vía ssh y actualiza los archivos de mi alojamiento cada vez que ejecuto el comando "npm run publish".
A continuación pongo el script que he acabado haciendo y que después de probarlo, creo que me ahorrará bastante tiempo:
#!/bin/bash # SFTP server configuration HOSTNAME='xxxxxx' PORT='xxxxx' USERNAME='xxxxxx' REMOTE_PATH='xxxxxx' LOCAL_PATH='./out/*' # Function to run SSH commands ssh_command() { ssh -p "$PORT" "$USERNAME@$HOSTNAME" "$1" } # Function to upload directory using SCP scp_upload() { local files=($1) # Expand the wildcard for file in "${files[@]}"; do scp -P "$PORT" -r "$file" "$USERNAME@$HOSTNAME:$2" done } # Main script execution main() { echo "Removing everything on remote $REMOTE_PATH" ssh_command "rm -rf $REMOTE_PATH" # Create the remote directory again ssh_command "mkdir -p $REMOTE_PATH" echo "Uploading $LOCAL_PATH on remote $REMOTE_PATH" # Upload local directory contents to remote directory scp_upload "$LOCAL_PATH" "$REMOTE_PATH" } # Run the main function mainDe este modo, y después de actualizar mi package.json con `"publish": "next build && ./upload.sh"` cada vez que ejecuto el comando de publish, se me compila y se me sube automáticamente al servidor.
Otras mejoras
Además, he corregido un par de problemillas que tenía en la parte de los objetivos.
El primero de ellos era que lo había hecho para que se renderizara en el servidor, y al exportarlo de forma estática, era solo en tiempo de construcción que se reflejaban los cambios de la base de datos.
He acabado convirtiendo ese componente a un "client component" y junto con "useEffect" y "useState" he hecho que ahora cada vez que entres, refleje el estado actual.
El otro tema era como se formaba el mapa de actividad.
Este año funcionaba porque coincidía que el día 1 era lunes, pero si fuese distinto (cómo el año que viene mismo) esto no funcionaría y no coincidiría bien, así que lo mejoré para que refleje el calendario.
¿Quién me va a leer?
Otra reflexión que he hecho este fin de semana, es que si solo escribo en este blog pero no lo comparto en ningún lado, es muy difícil que alguien pueda acabar leyendo esto.
Así que mis siguientes pasos serán en buscar un sistema que cada vez que cree un artículo, también se publique de algún modo en mis redes sociales, así quizás alguien me acaba descubriendo.
No tengo muy claro que redes van a ser, seguramente empieze por X. Pero esto ya será mañana cuando investigue las distintas API y las mejores maneras de automatizarlo.
Y hasta aquí mi día de hoy.
VOLVER