bookwyrm/bw-dev

147 lines
3.6 KiB
Text
Raw Normal View History

#!/bin/bash
# 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 runweb {
docker-compose run --rm web "$@"
}
2020-11-09 01:30:47 +00:00
function execdb {
docker-compose exec db $@
}
function execweb {
docker-compose exec web "$@"
}
function initdb {
2020-11-09 01:30:47 +00:00
execweb python manage.py migrate
execweb python manage.py initdb
}
2021-06-08 16:19:52 +00:00
function awscommand {
# expose env vars
2021-06-07 19:40:37 +00:00
export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
export AWS_DEFAULT_REGION=${AWS_S3_REGION_NAME}
2021-06-08 16:19:52 +00:00
# first arg is mountpoint, second is the whole aws command
docker run --rm -it -v $1\
2021-06-07 19:40:37 +00:00
-e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_DEFAULT_REGION\
2021-06-08 16:19:52 +00:00
amazon/aws-cli $2
2021-06-07 21:20:27 +00:00
}
CMD=$1
if [ -n "$CMD" ]; then
shift
fi
# show commands as they're executed
set -x
case "$CMD" in
up)
docker-compose up --build "$@"
;;
run)
docker-compose run --rm --service-ports web
;;
initdb)
initdb
;;
migrate)
runweb python manage.py migrate "$@"
;;
2020-11-08 20:14:57 +00:00
bash)
runweb bash
;;
shell)
runweb python manage.py shell
;;
dbshell)
execdb psql -U ${POSTGRES_USER} ${POSTGRES_DB}
;;
restart_celery)
docker-compose restart celery_worker
;;
2020-09-28 21:47:53 +00:00
collectstatic)
runweb python manage.py collectstatic --no-input
2020-09-28 21:47:53 +00:00
;;
2020-11-08 18:29:33 +00:00
build)
docker-compose build
2020-09-28 21:47:53 +00:00
;;
2020-11-05 19:47:40 +00:00
update)
git pull
2021-06-29 13:45:10 +00:00
docker-compose build --no-cache
2020-11-05 19:47:40 +00:00
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py collectstatic --no-input
docker-compose restart
;;
2021-04-02 18:20:56 +00:00
populate_streams)
2021-08-08 00:38:07 +00:00
runweb python manage.py populate_streams $@
2021-03-28 18:46:07 +00:00
;;
populate_suggestions)
runweb python manage.py populate_suggestions
;;
generate_thumbnails)
2021-05-24 14:14:51 +00:00
runweb python manage.py generateimages
;;
2021-05-26 11:52:10 +00:00
generate_preview_images)
runweb python manage.py generate_preview_images $@
2021-05-26 11:52:10 +00:00
;;
2021-06-07 19:40:37 +00:00
copy_media_to_s3)
2021-06-08 16:19:52 +00:00
awscommand "bookwyrm_media_volume:/images"\
"s3 cp /images s3://${AWS_STORAGE_BUCKET_NAME}/images\
--endpoint-url ${AWS_S3_ENDPOINT_URL}\
--recursive --acl public-read"
2021-06-07 19:40:37 +00:00
;;
2021-06-07 21:20:27 +00:00
set_cors_to_s3)
2021-06-08 16:19:52 +00:00
awscommand "$(pwd):/bw"\
"s3api put-bucket-cors\
--bucket ${AWS_STORAGE_BUCKET_NAME}\
--endpoint-url ${AWS_S3_ENDPOINT_URL}\
--cors-configuration file:///bw/$@"
2021-06-07 21:20:27 +00:00
;;
runweb)
runweb "$@"
;;
rundb)
rundb "$@"
;;
*)
set +x # No need to echo echo
2021-06-19 15:18:13 +00:00
echo "Unrecognised command. Try:"
echo " up [container]"
echo " run"
echo " initdb"
echo " makemigrations [migration]"
echo " migrate [migration]"
echo " bash"
echo " shell"
echo " dbshell"
echo " restart_celery"
echo " collectstatic"
echo " build"
echo " clean"
2021-08-08 00:38:07 +00:00
echo " populate_streams [--stream=<stream name>]"
2021-08-03 00:55:30 +00:00
echo " populate_suggestions"
echo " generate_thumbnails"
echo " generate_preview_images [--all]"
echo " copy_media_to_s3"
echo " set_cors_to_s3 [cors file]"
echo " runweb [command]"
echo " rundb [command]"
;;
esac