12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/bin/bash
- set -eu
- COIN_DIR=/opt/coin
- NGINX_COIN_FILE=/etc/nginx/conf.d/coin.local.d/coin.conf
- function use_git() {
- local COIN_GIT=$(realpath $1)
- if [ -f "${COIN_DIR}/manage.py" ] || [ -L "${COIN_DIR}/manage.py" ]; then
- cp ${COIN_DIR}/coin/settings_local.py ${COIN_DIR}/settings_local.py || true
- for subpath in $(ls ${COIN_GIT}/); do
- rm -Rf ${COIN_DIR}/$subpath || true
- ln -s ${COIN_GIT}/$subpath ${COIN_DIR}/$subpath
- done
- cp ${COIN_DIR}/settings_local.py ${COIN_DIR}/coin/settings_local.py
- bash --init-file <(echo "cd ${COIN_DIR}; source venv/bin/activate; pip install -r requirements.txt; exit")
- fi
- }
- function restore() {
- # Restore db
- if [ -f $(pwd)/../dump.sql ]; then
- PGPASSWORD=$(grep -oP "'PASSWORD': '\K[^']+" ${COIN_DIR}/coin/settings_local.py) dropdb -Ucoin coin || true
- sudo su -c "createdb -O coin coin" - postgres
- PGPASSWORD=$(grep -oP "'PASSWORD': '\K[^']+" ${COIN_DIR}/coin/settings_local.py) psql -Ucoin coin < $(pwd)/../dump.sql
- fi
- # Restore settings
- if [ -f $(pwd)/dev_settings.py ]; then
- sed '/# START DEV SETTINGS/,$d' ${COIN_DIR}/coin/settings_local.py
- echo '# START DEV SETTINGS' >> ${COIN_DIR}/coin/settings_local.py
- cat $(pwd)/dev_settings.py >> ${COIN_DIR}/coin/settings_local.py
- fi
- }
- function exit_usage() {
- echo -e "usage: coin-dev [-g GIT_COIN_DIR] [-r] [-h]"
- echo -e "Run coin in development mode"
- echo -e ""
- echo -e "Options:"
- echo -e " -r Restore a db located in /opt/coin/dump.sql"
- echo -e " -g Replace coin with the git repository "
- echo -e " -h Display this help"
- exit 0
- }
- restore=false
- while getopts "g:rh" opt; do
- case $opt in
- g) use_git $OPTARG ;;
- r) restore=true ;;
- h) exit_usage ;;
- \?) exit_usage ;;
- esac
- done
- if $restore; then
- restore
- fi
- if [ -f ${COIN_DIR}/manage.py ]; then
- sed -i "s@http://unix:${COIN_DIR}/sock@http://127.0.0.1:8000@" ${NGINX_COIN_FILE}
- service nginx reload
- service coin stop
- bash --init-file <(echo "cd ${COIN_DIR}; source venv/bin/activate; python manage.py migrate; python manage.py runserver 0.0.0.0:8000")
- fi
|