#!/bin/bash set -e if [ -e /etc/redhat-release ]; then WWW_OWNER=nginx:nginx else # Assume we're on a Debian-based system for now. WWW_OWNER=www-data:www-data fi NGINX_SERVICE=${NGINX_SERVICE:-$(service --status-all 2>/dev/null \ | grep -Eo '\bnginx[^[:space:]]*' || true)} if [ -z "$NGINX_SERVICE" ]; then cat >&2 <&2 < /dev/null if [[ "$?" != "0" ]]; then gem install bundle fi set -e echo "Done." echo "Running bundle install" (cd $RELEASE_PATH && RAILS_ENV=production bundle install --path $SHARED_PATH/vendor_bundle) echo "Done." # We do not need to precompile assets, they are already part of the package. echo "Ensuring directory and file permissions" chown "$WWW_OWNER" $RELEASE_PATH/config/environment.rb chown "$WWW_OWNER" $RELEASE_PATH/config.ru chown "$WWW_OWNER" $RELEASE_PATH/config/database.yml chown "$WWW_OWNER" $RELEASE_PATH/Gemfile.lock chown -R "$WWW_OWNER" $RELEASE_PATH/tmp chown -R "$WWW_OWNER" $SHARED_PATH/log chown "$WWW_OWNER" $RELEASE_PATH/db/schema.rb chmod 644 $SHARED_PATH/log/* echo "Done." echo "Running sanity check" (cd $RELEASE_PATH && RAILS_ENV=production bundle exec rake config:check) SANITY_CHECK_EXIT_CODE=$? echo "Done." if [[ "$SANITY_CHECK_EXIT_CODE" != "0" ]]; then echo "Sanity check failed, aborting. Please roll back to the previous version of the package." exit $SANITY_CHECK_EXIT_CODE fi # We do not need to run db:migrate because Workbench is stateless echo "Restarting nginx" service "$NGINX_SERVICE" restart echo "Done."