Rev 5000 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/bin/bashif [ $# -lt 1 ]thenecho "Usage: $0 <UPDATE|ROLLBACK>"exit 1fiACTION=$1if [ $ACTION != "UPDATE" -a $ACTION != "ROLLBACK" ]thenecho "Wrong input"echo "Usage: $0 <UPDATE|ROLLBACK>"exit 1fi# resolve links - $0 may be a softlinkPRG="$0"while [ -h "$PRG" ]; dols=`ls -ld "$PRG"`link=`expr "$ls" : '.*-> \(.*\)$'`if expr "$link" : '/.*' > /dev/null; thenPRG="$link"elsePRG=`dirname "$PRG"`/"$link"fidone# Get standard environment variablesPRGDIR=`dirname $(readlink -f "$PRG")`MEDIA_EXPORT_PATH="/var/www/"PARTNERS_PATH="/var/www/static.saholic.com/partners/"WEBSITE_JAVASCRIPT_PATH="/var/www/static.saholic.com/js/"DATE=`date +%Y-%b-%d_%Hh%Mm`LOGFILE=${MEDIA_EXPORT_PATH}/${DATE}.log # Log file NameLOGERR=${MEDIA_EXPORT_PATH}/ERRORS-${DATE}.log # Error Log file NameCLEAN_DATE=`date -d '3 day ago' +"%Y-%b-%d"`# IO redirection for logging.touch ${LOGFILE}exec 6>&1 # Link file descriptor #6 with stdout.# Saves stdout.exec > ${LOGFILE} # stdout replaced with file ${LOGFILE}.touch ${LOGERR}exec 7>&2 # Link file descriptor #7 with stderr.# Saves stderr.exec 2> ${LOGERR} # stderr replaced with file ${LOGERR}.DEPLOYED_TIMESTAMP=`cat /catalog-dumps/current.timestamp`if [ $ACTION = "UPDATE" ]thenLATEST_TIMESTAMP=`cat /catalog-dumps/latest.timestamp`if [ "$DEPLOYED_TIMESTAMP" = "$LATEST_TIMESTAMP" ]thenecho "Already latest version is deployed"exit 1fielseLATEST_TIMESTAMP=`cat /catalog-dumps/previous.timestamp`if [ "INVALID" = "$LATEST_TIMESTAMP" ]thenecho "Nothing to roll back"exit 1fifiecho "Updating media files and document files"echo "======================================================="cd ${MEDIA_EXPORT_PATH}if [ $ACTION == "UPDATE" ]thenrsync -az --delete media/ media-previousrsync -az --delete media-offline/ mediarsync -az --delete documents/ documents-previousrsync -az --delete documents-offline/ documentselsersync -az --delete media-previous/ mediarsync -az --delete documents-previous/ documentsfiecho "Updating product list for partners"echo "======================================================="cd ${MEDIA_EXPORT_PATH}tar -zxf partners.tgzunlink partnersln -s partners-${LATEST_TIMESTAMP} partnerscp -r partners/* ${PARTNERS_PATH}rm -rf partners-${CLEAN_DATE}*echo "Updating javascripts for product comparison"echo "======================================================="tar -zxf javascripts.tgzunlink javascriptsln -s javascripts-${LATEST_TIMESTAMP} javascriptscp -r javascripts/* ${WEBSITE_JAVASCRIPT_PATH}rm -rf javascripts-${CLEAN_DATE}*#Clean up IO redirectionexec 1>&6 6>&- # Restore stdout and close file descriptor #6.exec 2>&7 7>&- # Restore stdout and close file descriptor #7.if [ -s "${LOGERR}" ]thenexit 1elseexit 0fiif [ $ACTION == "UPDATE" ]thencat /catalog-dumps/current.timestamp > /catalog-dumps/previous.timestampecho ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestampelseecho ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestampecho "INVALID" > /catalog-dumps/previous.timestampfiDATE=`date -d '2 days ago' +%Y-%b-%d`EXPORT_PATH="/var/www"rm -rf ${EXPORT_PATH}/*${DATE}*