Ciao a tutti, condivido uno script utile che ho messo insieme per aiutarmi a eseguire la mia istanza di sviluppo di Discourse.
Estrae tutte le ultime modifiche, scarica gli aggiornamenti dai plugin installati ed esegue tutte le migrazioni, oltre a installare le gemme e i pacchetti pnpm necessari.
Lo svantaggio dello script è che scarica anche i plugin inclusi nel core, che tecnicamente non farebbero nulla poiché verrebbero aggiornati con il primo git pull. Pazienza.
Nota: chatgpt.com mi ha aiutato a scrivere la logica dell’istruzione if (i miei esperimenti iniziali sono falliti).
~/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
Quindi, esegui:
chmod +x rundiscourse.sh
Quindi, vai al file ~/.bashrc (usando nano, o qualsiasi altro editor), e aggiungi questo pezzo se non lo hai già (è più verso il fondo)
# 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
Quindi, aggiungi quanto segue al file ~/.bash_aliases:
alias discourse="~/rundiscourse.sh"
Chiudi il terminale e riaprilo.
Ora, quando esegui discourse nel terminale, il tuo ambiente di sviluppo dovrebbe avviarsi!
Spero che questo sia stato d’aiuto! Inoltre, fatemi sapere se sto facendo qualcosa di sbagliato o se può essere migliorato. Grazie!