#!/bin/bash -e # Copyright (c) 2012-2013 Luke Shumaker # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . . /etc/conf.d/parabolaweb . libremessages clean() { cd "$WEBDIR" msg "Purging old .pyc files..." find . -name '*.pyc' -delete msg "Purging old GNU Make generated files..." make clean } configure() { cd "$WEBDIR" msg "Checking configuration..." if [[ ! -f local_settings.py ]]; then msg2 "Configuration file missing, opening editor..." cp local_settings.py.example local_settings.tmp.$$.py if "$EDITOR" local_settings.tmp.$$.py; then mv local_settings.tmp.$$.py local_settings.py else rm local_settings.tmp.$$.py msg "Failed to configure, exiting" exit 1 fi msg2 "Creating database..." ./manage.py syncdb else msg2 "Current configuration checks out" fi } update-database() { cd "$WEBDIR" msg "Updating database..." msg2 "Running migrations..." ./manage.py migrate if [[ -f devel/management/commands/update_types_permissions.py ]]; then msg2 "Updating permissions..." ./manage.py update_types_permissions fi msg2 "Loading fixtures..." ./manage.py loaddata */fixtures/*.json } update-filesystem() { cd "$WEBDIR" msg "Updating filesystem..." make msg2 "Collecting static files..." echo yes | ./manage.py collectstatic -l } main() { if [[ -z "$EDITOR" ]]; then error 'Please set the $EDITOR variable' exit 1 fi if [[ -d "$WEBDIR" ]]; then clean fi libregit "$GITURL" "$GITREF" "$WEBDIR" configure update-database update-filesystem } main "$@"