Hola a todos, solo comparto un script útil que he preparado y que me ayuda a ejecutar mi instancia de desarrollo de Discourse.
Extrae todos los últimos cambios, extrae las actualizaciones de los plugins instalados y ejecuta todas las migraciones, además de instalar los gems y paquetes de pnpm necesarios.
La desventaja del script es que también extrae los plugins incluidos en el núcleo, lo que técnicamente no haría nada ya que se actualizarían con el primer git pull. Bueno.
Nota: chatgpt.com me ayudó a escribir la lógica de la declaración if (mis experimentos iniciales fallaron).
~/rundiscourse.sh:
#!/bin/bash
cd ~/discourse
git pull
cd plugins
PLUGIN_DIR=~/discourse/plugins
for folder in "$PLUGIN_DIR"/*; do
if [ -d "$folder/.git" ]; then
output=$(git -C "$folder" pull)
if ! echo "$output" | grep -q "Already up to date."; then
echo "[$(basename "$folder")] $output"
fi
fi
done
cd ~/discourse
bundle install
pnpm install
bin/rails db:migrate
DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u
Luego, ejecuta:
chmod +x rundiscourse.sh
Luego, ve al archivo ~/.bashrc (usando nano, o lo que sea), y agrega este fragmento si aún no lo tienes (está más cerca del final)
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Luego, agrega lo siguiente al archivo ~/.bash_aliases:
alias discourse="~/rundiscourse.sh"
Cierra tu terminal y vuelve a abrirla.
¡Ahora, cuando ejecutes discourse en la terminal, tu entorno de desarrollo debería iniciarse!
¡Espero que esto haya ayudado! Además, háganme saber si estoy haciendo algo mal o si se puede mejorar. ¡Gracias!