#!/bin/bash # Check to see if the PLANNING_ROOT directory exists and is writable if ! [ -w $PLANNING_ROOT ]; then echo "Planning root directory: $PLANNING_ROOT doesn't exist, or isn't writable by this user"; exit 1 fi; # Check that the PLANNING_BACKUPS directory exists and is writable if ! [ -w $PLANNING_BACKUPS ]; then echo "Planning backups directory: $PLANNING_BACKUPS doesn't exist, or isn't writable"; exit 2 fi; # Check that the DEPLOYMENT_LOG exists and is writable # FIXME - these checks could be better if [ ! -w $DEPLOYMENT_LOG -a ! -w $DEPLOYMENT_LOG_DIRECTORY ]; then echo "Deployment log: $DEPLOYMENT_LOG doesn't exist, or isn't writable"; exit 3 fi; # Make a the directory to put the backup in mkdir $BACKUP_DIRECTORY # Move docs, cgi-bin and tools to the backups area # Copy data to the backups area # FIXME - which directories should probably be a variable echo echo "Backing up the current deployment to $BACKUP_DIRECTORY" (cd $PLANNING_ROOT; mv docs cgi-bin tools $BACKUP_DIRECTORY; cp -R data $BACKUP_DIRECTORY; ); echo "Done" echo echo "Enter mysql db name:" read MYSQL_DB_NAME export MYSQL_DB_NAME echo "Enter mysql username:" read MYSQL_USERNAME export MYSQL_USERNAME echo "Enter mysql password:" read MYSQL_PASSWORD export MYSQL_PASSWORD echo "Generating python scrapers" # Generate the python cgi files ./generateCGIScripts.py echo "Done generating python scrapers" # Copy the new versions of docs, cgi-bin and tools to PLANNING_ROOT echo "Deploying the new versions of docs, cgi-bin, and tools" cp -R docs cgi-bin tools $PLANNING_ROOT # Copy the config files from $PLANNING_BACKUPS to $PLANNING_ROOT # FIXME - we should have a variable for which files to do here if [ -a $BACKUP_DIRECTORY/docs/include/config.php ]; then echo "Copying back config.php"; cp $BACKUP_DIRECTORY/docs/include/config.php $PLANNING_ROOT/docs/include/; else echo "No config.php to put back"; fi; # Sort out .htaccess if [ -a $BACKUP_DIRECTORY/docs/.htaccess ]; then echo "Copying back .htaccess"; cp $BACKUP_DIRECTORY/docs/.htaccess $PLANNING_ROOT/docs/; # FIXME - should we rename the old .htaccess? else echo "No .htaccess to put back"; fi; # Copy the backup.gz file back to docs if [ -a $BACKUP_DIRECTORY/docs/backup.gz ]; then echo "Copying back backup.gz"; cp $BACKUP_DIRECTORY/docs/backup.gz $PLANNING_ROOT/docs/; else echo "No backup.gz to put back"; fi; # Now make all the files group writable echo "Making the planningalerts root directory group writable." chmod -R g+w $PLANNING_ROOT echo "Enter a reason for deployment:" read REASON echo echo $REASON # Write something in the deployment log echo echo "Updating deployment log" echo -e "Deployed by $USER on `date`\nReason: $REASON" >> $DEPLOYMENT_LOG echo # Email the team echo "emailing the team" echo -e "www.planningalerts.com redeployed by $USER on `date`\nReason: $REASON" | mail -s "PlanningAlerts Deployment" $TEAM_EMAIL echo echo "Remember to check that there are no changes needed in:" echo ".htaccess" echo "docs/include/config.php" echo