63 lines
1.9 KiB
Bash
63 lines
1.9 KiB
Bash
|
#!/bin/bash
|
||
|
################################################################################
|
||
|
#
|
||
|
# auto rebuild 'playdough' app
|
||
|
#
|
||
|
# This script can be used to automatically re-create from scratch, a new
|
||
|
# app named 'playdough' - for sake of testing the cookiecutter template.
|
||
|
#
|
||
|
# IMPORTANT: To use this script, place a copy in the root of the
|
||
|
# cookiecutter template source folder (~/src/cookiecutter-wuttaweb)
|
||
|
# alongside the cookiecutter.json file. Name it `newapp.sh` and then
|
||
|
# modify your copy of the script as needed. (See TODO comments below.)
|
||
|
#
|
||
|
# The script does the following:
|
||
|
# - remove existing virtualenv and source code
|
||
|
# - drop and recreate database
|
||
|
# - make new virtualenv
|
||
|
# - install cookiecutter
|
||
|
# - make new source code via cookiecutter
|
||
|
# - install new app
|
||
|
# - run web app
|
||
|
#
|
||
|
################################################################################
|
||
|
|
||
|
set -e
|
||
|
|
||
|
# TODO: adjust paths as needed
|
||
|
# nb. thanks to https://stackoverflow.com/a/246128
|
||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||
|
SRC_DIR=$( dirname -- "${SCRIPT_DIR}" )
|
||
|
WORKON_HOME=/srv/envs
|
||
|
|
||
|
# teardown
|
||
|
rm -rf $WORKON_HOME/playdough
|
||
|
rm -rf $SRC_DIR/playdough
|
||
|
|
||
|
# database
|
||
|
sudo -u postgres dropdb --if-exists playdough
|
||
|
# TODO: adjust db owner as needed
|
||
|
sudo -u postgres createdb -O playdough playdough
|
||
|
|
||
|
# virtualenv
|
||
|
python3 -m venv $WORKON_HOME/playdough
|
||
|
cd $WORKON_HOME/playdough
|
||
|
bin/pip install -U pip
|
||
|
bin/pip install -U setuptools wheel
|
||
|
bin/pip install -U cookiecutter
|
||
|
|
||
|
# source
|
||
|
bin/cookiecutter --no-input -o $SRC_DIR $SCRIPT_DIR \
|
||
|
full_name="Your Name" \
|
||
|
email="you@example.com" \
|
||
|
project_name="Playdough" \
|
||
|
project_short_description="My web app" \
|
||
|
open_source_license="Not open source"
|
||
|
|
||
|
# install app
|
||
|
bin/pip install -e $SRC_DIR/playdough
|
||
|
bin/playdough install
|
||
|
|
||
|
# serve web app
|
||
|
bin/pserve --reload file+ini:app/web.conf
|