|
- #!/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
|