여러분 안녕하세요, 제 디스코urs 개발 인스턴스를 실행하는 데 도움이 되는 유용한 스크립트를 하나 공유합니다.
이 스크립트는 최신 변경 사항을 모두 가져오고, 설치된 플러그인에서 업데이트를 받아오며, 모든 마이그레이션을 실행합니다. 또한 필요한 gems와 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를 실행하면 개발 환경이 시작되어야 합니다!
이 글이 도움이 되길 바랍니다! 또한 제가 무언가를 잘못하고 있거나 개선할 점이 있다면 알려주세요. 감사합니다!