Skip to content

Instantly share code, notes, and snippets.

@ChillyBwoy
Last active October 13, 2015 14:18
Show Gist options
  • Save ChillyBwoy/4209126 to your computer and use it in GitHub Desktop.
Save ChillyBwoy/4209126 to your computer and use it in GitHub Desktop.
django server script
#!/usr/bin/env bash
set -e
SETTINGS=$2
DB_USER="dbuser"
DB_NAME="dbname"
DB_PASS="dbpass"
DB_HOST=localhost
PROJECT_NAME="project_name"
PROJECT_PATH="$(cd ../ | cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_APP_PATH="$PROJECT_PATH/$PROJECT_NAME"
PROJECT_ENV_PATH="$PROJECT_PATH/.env/bin/activate"
export DJANGO_SETTINGS_MODULE=$SETTINGS
d_cleanup() {
find . -name '*.pyc' -delete
}
d_start() {
source $PROJECT_ENV_PATH
d_cleanup
django-admin.py runfcgi maxchildren=2 maxspare=2 minspare=1 method=prefork socket=$PROJECT_PATH/var/server.sock pidfile=$PROJECT_PATH/var/server.pid --pythonpath=$PROJECT_PATH
chmod 0666 $PROJECT_PATH/var/server.sock
}
d_stop() {
kill -9 `cat ${PROJECT_PATH}/var/server.pid`
rm "$PROJECT_PATH/var/server.pid"
rm "$PROJECT_PATH/var/server.sock"
}
d_dumpsql() {
local path_sql="$PROJECT_PATH/sql"
local fname="$path_sql/$PROJECT_NAME-`date +%FT%H-%M`"
if [ ! -d $path_sql ]; then
mkdir -p "$path_sql"
fi
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $fname.sql.gz
}
case $1 in
start)
echo "Start"
d_start
;;
stop)
echo "Stop"
d_stop
;;
cleanup)
echo "Clean"
d_cleanup
;;
dumpsql)
echo "Dump"
d_dumpsql
;;
restart)
echo "Restart"
d_stop
sleep 1
d_start
;;
*)
echo "Usage: {cleanup|dumpsql|restart|start|stop} <settings>"
exit 3
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment