if ($pub_date < $currentdate) {
$published = 1;
}
elseif ($pub_date > $currentdate) {
$published = 0;
}
#! /bin/bash
#
# stg2prod.sh - promotion script from staging environment to production.
#
#
# Set script wide variables
#
DATE=`date +%F-%T`
BACKUPDIR="/var/lib/backups/SITENAME/stg2prod"
DB_USER="modx"
DB_PASSWD="xxxxxxxxxx"
DB_HOST="localhost"
DB_SOURCE="modx_stg"
DB_DESTINATION="modx_prod"
HTDOCS_SOURCE="/var/vhosts/SITENAME-STG"
HTDOCS_DESTINATION="/var/vhosts/SITENAME-PROD"
#
# Display confirmation prompt
#
echo -e "\n\nPROMOTING STG to PROD $DATE\n"
echo -n "Would you like to continue? (y/n): "
#
# Read and process confirmation
#
read CONFIRMATION
echo
case "$CONFIRMATION"
in
y) echo "Proceeding";;
n) echo "Aborting"
exit 0;;
*) echo "Invalid response, Aborting"
exit 1;;
esac
#
# Perform a database backup, and create an archive of the document root.
#
echo "Backing up to $BACKUPDIR .."
if mysqldump -u $DB_USER -p$DB_PASSWD $DB_SOURCE > $BACKUPDIR/$DATE-$DB_SOURCE.sql && \
mysqldump -u $DB_USER -p$DB_PASSWD $DB_DESTINATION > $BACKUPDIR/$DATE-$DB_DESTINATION.sql && \
tar czf $BACKUPDIR/$DATE-httpdocs-$DB_SOURCE.tar.gz $HTDOCS_SOURCE && \
tar czf $BACKUPDIR/$DATE-httpdocs-$DB_DESTINATION.tar.gz $HTDOCS_DESTINATION
then
echo " Backups completed."
else
echo " Backups FAILED, aborting."
exit 255
fi
echo -n "Backup up selected tables from $DB_SOURCE .."
if mysqldump -u $DB_USER -p$DB_PASSWD $DB_SOURCE \
modx_active_users \
modx_categories \
modx_documentgroup_names \
modx_event_log \
modx_manager_users \
modx_maxigallery \
modx_member_groups \
modx_membergroup_access \
modx_membergroup_names \
modx_site_htmlsnippets \
modx_site_keywords \
modx_site_metatags \
modx_site_module_access \
modx_site_module_depobj \
modx_site_modules \
modx_site_plugin_events \
modx_site_plugins \
modx_site_snippets \
modx_site_templates \
modx_site_tmplvar_access \
modx_site_tmplvar_templates \
modx_site_tmplvars \
modx_site_content \
modx_site_tmplvar_contentvalues \
modx_document_groups \
modx_keyword_xref \
modx_site_content_metatags \
modx_system_eventnames \
modx_system_settings \
modx_user_attributes \
modx_user_messages \
modx_user_roles \
modx_user_settings \
modx_web_groups \
modx_web_user_attributes \
modx_web_user_settings \
modx_web_users \
modx_webgroup_access \
modx_webgroup_names \
modx_manager_log > /tmp/$DB_SOURCE.sql
then
echo " Done."
else
echo " Failed, aborting."
exit 1
fi
echo -n "Updating $DB_SOURCE htdocs with new contetnt from $DB_DESTINATION htdocs .."
if /bin/cp -a $HTDOCS_SOURCE/* $HTDOCS_DESTINATION
then
echo " Done."
/bin/cp -a $HTDOCS_SOURCE/manager/includes/config.inc.php-prod $HTDOCS_SOURCE/manager/includes/config.inc.php
else
echo " Failed, aborting."
exit 2
fi
echo -n "Updating $DB_DESTINATION database with new records from $DB_SOURCE database .."
if mysql -u $DB_USER -p$DB_PASSWD $DB_DESTINATION < /tmp/$DB_SOURCE.sql
then
echo " Done."
else
echo " Failed, aborting."
exit 3
fi
echo -n "Removing stale cache .."
rm $HTDOCS_DESTINATION/docid*
echo " Done."
echo "Promotion complete!"