皆さん、こんにちは。Discourse の開発インスタンスを実行するのに役立つスクリプトを共有します。
これは、最新の変更をすべてプルし、インストールされているプラグインの更新をプルし、すべてのマイグレーションを実行し、必要な gem と pnpm パッケージをインストールします。
スクリプトの欠点は、コアにバンドルされているプラグインもプルすることです。これは、最初の git pull で更新されるため、技術的には何も行われません。まあ、それはいいでしょう。
注: if ステートメントのロジックは chatgpt.com が作成を手伝ってくれました(私の最初の実験は失敗しました)。
~/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 などを使用して)開き、既に追加されていない場合はこの部分を追加します(下の方にあります)。
# 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
次に、~/.bash_aliases ファイルに以下を追加します。
alias discourse="~/rundiscourse.sh"
ターミナルを閉じてから再度開きます。
これで、ターミナルで discourse を実行すると、開発環境が開始されるはずです!
これが役に立ったなら幸いです!また、何か間違っていることや改善できる点があれば教えてください。ありがとうございます!