#!/bin/sh set -e if [ -e /etc/default/noosfero ]; then . /etc/default/noosfero fi export RAILS_ENV=production ACTION=$1 shift clear_cache() { if test -w ./public; then echo "Cleaning cache files" rm -f ./public/javascripts/cache-*.js rm -f ./public/stylesheets/cache.css elif [ ! -z "$NOOSFERO_DATA_DIR" ] && [ -w "$NOOSFERO_DATA_DIR" ]; then echo "Cleaning cache files" rm -f $NOOSFERO_DATA_DIR/cache/cache-*.js rm -f $NOOSFERO_DATA_DIR/cache/cache.css fi } do_start() { if ! rake db:abort_if_pending_migrations; then echo "========================================" echo "There are pending migrations, please upgrade the database before starting the production server" exit 1 fi clear_cache ./script/ferret_server -e $RAILS_ENV start environments_loop mongrel_rails cluster::start } do_stop() { mongrel_rails cluster::stop ./script/delayed_job stop ./script/feed-updater stop ./script/ferret_server -e $RAILS_ENV stop } environments_loop() { environments=$(find ./config/environments -name *_$RAILS_ENV.rb) if [ "$environments" ]; then for environment in $environments; do env=$(basename $environment | cut -d. -f1) RAILS_ENV=$env ./script/delayed_job -i $env start RAILS_ENV=$env ./script/feed-updater start -i $env done else ./script/delayed_job start ./script/feed-updater start fi } case "$ACTION" in start|stop) do_$ACTION ;; run) do_start echo "=> Running in production mode. Hit ctrl-C to stop." trap do_stop INT TERM tail -n 0 -f log/production.log || true ;; restart) do_stop sleep 1 do_start ;; *) echo "usage: $0 start|stop|restart|run" exit 1 ;; esac