Всем привет, делюсь удобным скриптом, который я написал для запуска моего экземпляра Discourse в режиме разработки.
Он подтягивает все последние изменения, обновляет установленные плагины и выполняет все миграции, а также устанавливает необходимые gems и пакеты pnpm.
Минус скрипта в том, что он также подтягивает плагины, встроенные в ядро, что технически ничего не даст, так как они обновятся при первом git pull. Ну ладно.
Примечание: chatgpt.com помог мне написать логику для оператора if (мои первые эксперименты не увенчались успехом).
~/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
Затем выполните:
chmod +x rundiscourse.sh
Далее откройте файл ~/.bashrc (используя nano или любой другой редактор) и добавьте этот блок, если его там ещё нет (он находится ближе к концу файла):
# Определения алиасов.
# Вы можете поместить все свои дополнения в отдельный файл, например
# ~/.bash_aliases, вместо того чтобы добавлять их сюда напрямую.
# См. /usr/share/doc/bash-doc/examples в пакете bash-doc.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Затем добавьте следующее в файл ~/.bash_aliases:
alias discourse="~/rundiscourse.sh"
Закройте терминал и откройте его снова.
Теперь, когда вы запустите команду discourse в терминале, ваша среда разработки должна запуститься!
Надеюсь, это помогло! Также дайте знать, если я делаю что-то не так или если есть возможность улучшить скрипт. Спасибо!