Olá a todos, estou compartilhando um script útil que criei para me ajudar a executar minha instância de desenvolvimento do Discourse.
Ele puxa todas as alterações mais recentes, puxa as atualizações dos plugins instalados e executa todas as migrações, além de instalar os gems e pacotes pnpm necessários.
A desvantagem do script é que ele também puxa os plugins incluídos no core, o que tecnicamente não faria nada, pois seriam atualizados com o primeiro git pull. Ah, bem.
Observação: o chatgpt.com me ajudou a escrever a lógica da instrução if (meus experimentos iniciais falharam).
~/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
Em seguida, execute:
chmod +x rundiscourse.sh
Em seguida, vá para o arquivo ~/.bashrc (usando nano ou qualquer outro editor) e adicione este trecho se você ainda não o tiver (está mais perto do 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
Em seguida, adicione o seguinte ao arquivo ~/.bash_aliases:
alias discourse="~/rundiscourse.sh"
Feche seu terminal e reabra-o.
Agora, quando você executar discourse no terminal, seu ambiente de desenvolvimento deverá iniciar!
Espero que isso tenha ajudado! Além disso, por favor, me avisem se estou fazendo algo errado ou se pode ser melhorado. Obrigado!