Merge pull request #10 from rhcarvalho/remove-custom-sti-scripts

Remove custom sti scripts
This commit is contained in:
Ben Parees 2015-06-11 10:04:12 -04:00
commit dc87dd2f53
3 changed files with 0 additions and 177 deletions

View File

@ -1,63 +0,0 @@
#!/bin/bash
# This script uses these environment variables:
#
# DISABLE_COLLECTSTATIC: if not empty, inhibits execution of 'manage.py collectstatic'.
function assemble() {
# For SCL enablement
source .bashrc
set -e
echo "---> Copying application source ..."
cp -Rf /tmp/src/* ./
if [ -f setup.py ]; then
echo "---> Installing application ..."
python setup.py install --user
elif [ -f requirements.txt ]; then
echo "---> Installing dependencies ..."
pip install --user -r requirements.txt
fi
# set permissions for any installed artifacts
chmod -R og+rwx /opt/openshift
set +e
django_collectstatic
set -e
# remove pip temporary directory
rm -rf /tmp/pip_build_default
}
function django_collectstatic() {
[ -n "$DISABLE_COLLECTSTATIC" ] && return
! pip show -q django && return
# Find shallowest manage.py script, either ./manage.py or <project>/manage.py
local MANAGE_FILE=$(find . -maxdepth 2 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1)
if [ ! -f "$MANAGE_FILE" ]; then
echo "WARNING: seems that you're using Django, but we could not find a 'manage.py' file."
echo "'manage.py collectstatic' ignored."
return
fi
echo "---> Collecting Django static files ..."
if ! python $MANAGE_FILE collectstatic --dry-run --noinput &> /dev/null; then
echo "WARNING: could not run 'manage.py collectstatic'. To debug, run:"
echo " $ python $MANAGE_FILE collectstatic --noinput"
echo "Ignore this warning if you're not serving static files with Django."
return
fi
if ! python $MANAGE_FILE collectstatic --noinput 2>&1 | sed '/^Copying/d;/^$/d;/^ /d'; then
local status=$?
echo "ERROR: 'manage.py collectstatic' failed."
return $status
fi
}
assemble

View File

@ -1,109 +0,0 @@
#!/bin/bash
# This script uses these environment variables:
#
# APP_MODULE: Python dotted path to your WSGI application.
# If not provided, tries to find the Python path to a 'wsgi.py' file
# in the source tree.
# That file is present in Django projects by default.
# APP_CONFIG: Optional configuration file for gunicorn.
# APP_FILE: Optional path to Python script to run your application.
# Defaults to 'app.py' if it exists.
#
# DISABLE_MIGRATE: if not empty, inhibits execution of 'manage.py migrate'.
BIND_ADDR="0.0.0.0:8080"
function run() {
# For SCL enablement
source .bashrc
set -e
# Try to run application with the strategies below, in precedence order.
# The first successful strategy takes over this script's process via exec.
# If no strategy succeed, report an error message and terminate.
run_django
run_gunicorn "$APP_MODULE"
run_python_script "${APP_FILE:-app.py}"
echo "ERROR: don't know how to run your application."
echo "Please set either APP_MODULE or APP_FILE environment variables,"
echo "or create a file 'app.py' to launch your application."
return 1
}
function run_django() {
! pip show -q django && return
# Find shallowest manage.py script, either ./manage.py or <project>/manage.py
local MANAGE_FILE=$(find . -maxdepth 2 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1)
django_migrate "$MANAGE_FILE"
# try to use gunicorn
run_gunicorn "$APP_MODULE"
# or fallback to Django's development server
django_runserver "$MANAGE_FILE"
}
function django_migrate() {
[ -n "$DISABLE_MIGRATE" ] && return
echo "---> Migrating database ..."
django_manage_cmd "$1" migrate --noinput
}
function django_runserver() {
echo "---> Serving application with 'manage.py runserver' ..."
echo "---> WARNING: this is NOT a recommended way to run you application in production!"
django_manage_cmd "$1" runserver "$BIND_ADDR"
}
function django_manage_cmd() {
local MANAGE_FILE="$1"
local CMD="${@:2}"
if [ ! -f "$MANAGE_FILE" ]; then
echo "WARNING: seems that you're using Django, but we could not find a 'manage.py' file."
echo "'manage.py $CMD' ignored."
return
fi
if [[ "$CMD" =~ ^runserver ]]; then
exec python "$MANAGE_FILE" $CMD
else
python "$MANAGE_FILE" $CMD
fi
}
function run_gunicorn() {
! pip show -q gunicorn && return
local APP_MODULE="$1"
if [ -z "$APP_MODULE" ]; then
# Find shallowest wsgi.py file, one of ./wsgi.py, <project>/wsgi.py or <project>/<project>/wsgi.py,
# replace "/" with "." and remove ".py" suffix
APP_MODULE=$(find . -maxdepth 3 -type f -name 'wsgi.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1 | sed 's:/:.:;s:.py$::')
fi
if [ -z "$APP_MODULE" ]; then
echo "WARNING: seems that you're trying to use gunicorn, but no WSGI application module was specified."
return
fi
echo "---> Serving application with gunicorn ..."
exec gunicorn "$APP_MODULE" --bind="$BIND_ADDR" --access-logfile=- --config "$APP_CONFIG"
}
function run_python_script() {
local APP_FILE="$1"
[ ! -f "$APP_FILE" ] && return
echo "---> Running application from Python script ..."
exec python -u "$APP_FILE"
}
run

View File

@ -29,11 +29,6 @@ From this initial state you can:
Apart from the regular files created by Django (`project/*`, `welcome/*`, `manage.py`), this repository contains:
```
.sti/
└── bin/ - scripts used by source-to-image
├── assemble - executed to produce a Docker image with your code and dependencies during build
└── run - executed to start your app during deployment
openshift/ - OpenShift-specific files
├── scripts - helper scripts
└── templates - application templates