Skip to content

Commit

Permalink
Merge pull request #2196 from bookwyrm-social/bw-dev-alerts
Browse files Browse the repository at this point in the history
Block some bw-dev commands from being run in prod
  • Loading branch information
mouse-reeve committed Jul 26, 2022
2 parents 6fc44cf + 19e0db5 commit 5faaa6b
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions bw-dev
Expand Up @@ -3,6 +3,17 @@
# exit on errors
set -e

# check if we're in DEBUG mode
DEBUG=$(sed <.env -ne 's/^DEBUG=//p')

# disallow certain commands when debug is false
function prod_error {
if [ "$DEBUG" != "true" ]; then
echo "This command is not safe to run in production environments"
exit 1
fi
}

# import our ENV variables
# catch exits and give a friendly error message
function showerr {
Expand Down Expand Up @@ -65,12 +76,14 @@ case "$CMD" in
docker-compose up --build "$@"
;;
service_ports_web)
prod_error
docker-compose run --rm --service-ports web
;;
initdb)
initdb "@"
;;
resetdb)
prod_error
clean
# Start just the DB so no one else is using it
docker-compose up --build -d db
Expand All @@ -83,6 +96,7 @@ case "$CMD" in
clean
;;
makemigrations)
prod_error
runweb python manage.py makemigrations "$@"
;;
migrate)
Expand All @@ -101,21 +115,25 @@ case "$CMD" in
docker-compose restart celery_worker
;;
pytest)
prod_error
runweb pytest --no-cov-on-fail "$@"
;;
pytest_coverage_report)
prod_error
runweb pytest -n 3 --cov-report term-missing "$@"
;;
collectstatic)
runweb python manage.py collectstatic --no-input
;;
makemessages)
prod_error
runweb django-admin makemessages --no-wrap --ignore=venv -l en_US $@
;;
compilemessages)
runweb django-admin compilemessages --ignore venv $@
;;
update_locales)
prod_error
git fetch origin l10n_main:l10n_main
git checkout l10n_main locale/ca_ES
git checkout l10n_main locale/de_DE
Expand All @@ -139,24 +157,30 @@ case "$CMD" in
docker-compose build
;;
clean)
prod_error
clean
;;
black)
prod_error
docker-compose run --rm dev-tools black celerywyrm bookwyrm
;;
pylint)
prod_error
# pylint depends on having the app dependencies in place, so we run it in the web container
runweb pylint bookwyrm/
;;
prettier)
prod_error
docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js
;;
stylelint)
prod_error
docker-compose run --rm dev-tools npx stylelint \
bookwyrm/static/css/bookwyrm.scss bookwyrm/static/css/bookwyrm/**/*.scss --fix \
--config dev-tools/.stylelintrc.js
;;
formatters)
prod_error
runweb pylint bookwyrm/
docker-compose run --rm dev-tools black celerywyrm bookwyrm
docker-compose run --rm dev-tools npx prettier --write bookwyrm/static/js/*.js
Expand All @@ -169,6 +193,7 @@ case "$CMD" in
runweb python manage.py collectstatic --no-input
;;
collectstatic_watch)
prod_error
npm run --prefix dev-tools watch:static
;;
update)
Expand Down

0 comments on commit 5faaa6b

Please sign in to comment.