From 3eb443c1399caf9c168f6d67ef334d3c50a9ed86 Mon Sep 17 00:00:00 2001 From: Joel Bradshaw Date: Thu, 19 Nov 2020 13:01:39 -0800 Subject: [PATCH 1/3] Use ENV variables in fr-dev This allows folks to rename their database and still use the dev scripts --- .env.example | 4 ++-- fr-dev | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index e0e98c10..7a67045c 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY=7(2w1sedok=aznpq)ta1mc4i%4h=xx@hxwx*o57ctsuml0x%fr +SECRET_KEY="7(2w1sedok=aznpq)ta1mc4i%4h=xx@hxwx*o57ctsuml0x%fr" # SECURITY WARNING: don't run with debug turned on in production! DEBUG=true @@ -25,7 +25,7 @@ POSTGRES_HOST=db CELERY_BROKER=redis://redis:6379/0 CELERY_RESULT_BACKEND=redis://redis:6379/0 -EMAIL_HOST='smtp.mailgun.org' +EMAIL_HOST="smtp.mailgun.org" EMAIL_PORT=587 EMAIL_HOST_USER=mail@your.domain.here EMAIL_HOST_PASSWORD=emailpassword123 diff --git a/fr-dev b/fr-dev index c63a10a1..d8c4d859 100755 --- a/fr-dev +++ b/fr-dev @@ -1,5 +1,8 @@ #!/bin/bash +# import our ENV variables +source .env + set -e set -x @@ -39,8 +42,8 @@ case "$1" in resetdb) clean docker-compose up --build -d - execdb dropdb -U fedireads fedireads - execdb createdb -U fedireads fedireads + execdb dropdb -U ${POSTGRES_USER} ${POSTGRES_DB} + execdb createdb -U ${POSTGRES_USER} ${POSTGRES_DB} initdb clean ;; @@ -57,7 +60,7 @@ case "$1" in execweb python manage.py shell ;; dbshell) - execdb psql -U fedireads fedireads + execdb psql -U ${POSTGRES_USER} ${POSTGRES_DB} ;; restart_celery) docker-compose restart celery_worker From e4f2625b0258e73304051cd4f1cdffc71d23d4db Mon Sep 17 00:00:00 2001 From: Joel Bradshaw Date: Thu, 19 Nov 2020 13:50:59 -0800 Subject: [PATCH 2/3] Move fr-dev to bw-dev and alias it as fr-dev --- bw-dev | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fr-dev | 92 +--------------------------------------------------------- 2 files changed, 92 insertions(+), 91 deletions(-) create mode 100755 bw-dev mode change 100755 => 120000 fr-dev diff --git a/bw-dev b/bw-dev new file mode 100755 index 00000000..d8c4d859 --- /dev/null +++ b/bw-dev @@ -0,0 +1,91 @@ +#!/bin/bash + +# import our ENV variables +source .env + +set -e +set -x + +function clean { + docker-compose stop + docker-compose rm -f +} + +function runweb { + docker-compose run --rm web "$@" + clean +} + +function execdb { + docker-compose exec db $@ +} + +function execweb { + docker-compose exec web "$@" +} + +function initdb { + execweb python manage.py migrate + execweb python manage.py initdb +} + +case "$1" in + up) + docker-compose up --build + ;; + run) + docker-compose run --rm --service-ports web + ;; + initdb) + initdb + ;; + resetdb) + clean + docker-compose up --build -d + execdb dropdb -U ${POSTGRES_USER} ${POSTGRES_DB} + execdb createdb -U ${POSTGRES_USER} ${POSTGRES_DB} + initdb + clean + ;; + makemigrations) + execweb python manage.py makemigrations + ;; + migrate) + execweb python manage.py migrate + ;; + bash) + execweb bash + ;; + shell) + execweb python manage.py shell + ;; + dbshell) + execdb psql -U ${POSTGRES_USER} ${POSTGRES_DB} + ;; + restart_celery) + docker-compose restart celery_worker + ;; + test) + shift 1 + execweb coverage run --source='.' --omit="*/test*,celerywyrm*,bookwyrm/migrations/*" manage.py test "$@" + ;; + pytest) + shift 1 + execweb pytest "$@" + ;; + test_report) + execweb coverage report + ;; + collectstatic) + execweb python manage.py collectstatic --no-input + ;; + build) + docker-compose build + ;; + clean) + clean + ;; + *) + echo "Unrecognised command. Try: build, clean, up, initdb, resetdb, makemigrations, migrate, bash, shell, dbshell, restart_celery, test, pytest, test_report" + ;; +esac diff --git a/fr-dev b/fr-dev deleted file mode 100755 index d8c4d859..00000000 --- a/fr-dev +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash - -# import our ENV variables -source .env - -set -e -set -x - -function clean { - docker-compose stop - docker-compose rm -f -} - -function runweb { - docker-compose run --rm web "$@" - clean -} - -function execdb { - docker-compose exec db $@ -} - -function execweb { - docker-compose exec web "$@" -} - -function initdb { - execweb python manage.py migrate - execweb python manage.py initdb -} - -case "$1" in - up) - docker-compose up --build - ;; - run) - docker-compose run --rm --service-ports web - ;; - initdb) - initdb - ;; - resetdb) - clean - docker-compose up --build -d - execdb dropdb -U ${POSTGRES_USER} ${POSTGRES_DB} - execdb createdb -U ${POSTGRES_USER} ${POSTGRES_DB} - initdb - clean - ;; - makemigrations) - execweb python manage.py makemigrations - ;; - migrate) - execweb python manage.py migrate - ;; - bash) - execweb bash - ;; - shell) - execweb python manage.py shell - ;; - dbshell) - execdb psql -U ${POSTGRES_USER} ${POSTGRES_DB} - ;; - restart_celery) - docker-compose restart celery_worker - ;; - test) - shift 1 - execweb coverage run --source='.' --omit="*/test*,celerywyrm*,bookwyrm/migrations/*" manage.py test "$@" - ;; - pytest) - shift 1 - execweb pytest "$@" - ;; - test_report) - execweb coverage report - ;; - collectstatic) - execweb python manage.py collectstatic --no-input - ;; - build) - docker-compose build - ;; - clean) - clean - ;; - *) - echo "Unrecognised command. Try: build, clean, up, initdb, resetdb, makemigrations, migrate, bash, shell, dbshell, restart_celery, test, pytest, test_report" - ;; -esac diff --git a/fr-dev b/fr-dev new file mode 120000 index 00000000..9947871e --- /dev/null +++ b/fr-dev @@ -0,0 +1 @@ +bw-dev \ No newline at end of file From f5f900a6e7e8cf32ac677fc9d3209e61acda2e76 Mon Sep 17 00:00:00 2001 From: Joel Bradshaw Date: Thu, 19 Nov 2020 17:44:46 -0800 Subject: [PATCH 3/3] Figured out a way to give a nice error message This way if we fail to parse old .env's folks should be able to figure it out --- bw-dev | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bw-dev b/bw-dev index d8c4d859..182204c4 100755 --- a/bw-dev +++ b/bw-dev @@ -1,9 +1,18 @@ #!/bin/bash -# import our ENV variables -source .env - +# exit on errors set -e + +# import our ENV variables +# catch exits and give a friendly error message +function showerr { + echo "Failed to load configuration! You may need to update your .env and quote values with special characters in them." +} +trap showerr EXIT +source .env +trap - EXIT + +# show commands as they're executed set -x function clean {