Automatically exported from code.google.com/p/planningalerts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

112 regels
3.0 KiB

  1. #!/bin/bash
  2. # Check to see if the PLANNING_ROOT directory exists and is writable
  3. if ! [ -w $PLANNING_ROOT ];
  4. then
  5. echo "Planning root directory: $PLANNING_ROOT doesn't exist, or isn't writable by this user";
  6. exit 1
  7. fi;
  8. # Check that the PLANNING_BACKUPS directory exists and is writable
  9. if ! [ -w $PLANNING_BACKUPS ];
  10. then
  11. echo "Planning backups directory: $PLANNING_BACKUPS doesn't exist, or isn't writable";
  12. exit 2
  13. fi;
  14. # Check that the DEPLOYMENT_LOG exists and is writable
  15. # FIXME - these checks could be better
  16. if [ ! -w $DEPLOYMENT_LOG -a ! -w $DEPLOYMENT_LOG_DIRECTORY ];
  17. then
  18. echo "Deployment log: $DEPLOYMENT_LOG doesn't exist, or isn't writable";
  19. exit 3
  20. fi;
  21. # Make a the directory to put the backup in
  22. mkdir $BACKUP_DIRECTORY
  23. # Move docs, cgi-bin and tools to the backups area
  24. # Copy data to the backups area
  25. # FIXME - which directories should probably be a variable
  26. echo
  27. echo "Backing up the current deployment to $BACKUP_DIRECTORY"
  28. (cd $PLANNING_ROOT;
  29. mv docs cgi-bin tools $BACKUP_DIRECTORY;
  30. cp -R data $BACKUP_DIRECTORY;
  31. );
  32. echo "Done"
  33. echo
  34. echo "Enter mysql db name:"
  35. read MYSQL_DB_NAME
  36. export MYSQL_DB_NAME
  37. echo "Enter mysql username:"
  38. read MYSQL_USERNAME
  39. export MYSQL_USERNAME
  40. echo "Enter mysql password:"
  41. read MYSQL_PASSWORD
  42. export MYSQL_PASSWORD
  43. echo "Generating python scrapers"
  44. # Generate the python cgi files
  45. ./generateCGIScripts.py
  46. echo "Done generating python scrapers"
  47. # Copy the new versions of docs, cgi-bin and tools to PLANNING_ROOT
  48. echo "Deploying the new versions of docs, cgi-bin, and tools"
  49. cp -R docs cgi-bin tools $PLANNING_ROOT
  50. # Copy the config files from $PLANNING_BACKUPS to $PLANNING_ROOT
  51. # FIXME - we should have a variable for which files to do here
  52. if [ -a $BACKUP_DIRECTORY/docs/include/config.php ];
  53. then
  54. echo "Copying back config.php";
  55. cp $BACKUP_DIRECTORY/docs/include/config.php $PLANNING_ROOT/docs/include/;
  56. else
  57. echo "No config.php to put back";
  58. fi;
  59. # Sort out .htaccess
  60. if [ -a $BACKUP_DIRECTORY/docs/.htaccess ];
  61. then
  62. echo "Copying back .htaccess";
  63. cp $BACKUP_DIRECTORY/docs/.htaccess $PLANNING_ROOT/docs/;
  64. # FIXME - should we rename the old .htaccess?
  65. else
  66. echo "No .htaccess to put back";
  67. fi;
  68. # Copy the backup.gz file back to docs
  69. if [ -a $BACKUP_DIRECTORY/docs/backup.gz ];
  70. then
  71. echo "Copying back backup.gz";
  72. cp $BACKUP_DIRECTORY/docs/backup.gz $PLANNING_ROOT/docs/;
  73. else
  74. echo "No backup.gz to put back";
  75. fi;
  76. # Now make all the files group writable
  77. echo "Making the planningalerts root directory group writable."
  78. chmod -R g+w $PLANNING_ROOT
  79. echo "Enter a reason for deployment:"
  80. read REASON
  81. echo
  82. echo $REASON
  83. # Write something in the deployment log
  84. echo
  85. echo "Updating deployment log"
  86. echo -e "Deployed by $USER on `date`\nReason: $REASON" >> $DEPLOYMENT_LOG
  87. echo
  88. # Email the team
  89. echo "emailing the team"
  90. echo -e "www.planningalerts.com redeployed by $USER on `date`\nReason: $REASON" | mail -s "PlanningAlerts Deployment" $TEAM_EMAIL
  91. echo
  92. echo "Remember to check that there are no changes needed in:"
  93. echo ".htaccess"
  94. echo "docs/include/config.php"
  95. echo