Subversion Repositories SmartDukaan

Rev

Rev 5000 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2266 chandransh 1
#!/bin/bash
2
 
4849 rajveer 3
if [ $# -lt 1 ]
4
then
5
        echo "Usage: $0 <UPDATE|ROLLBACK>"
6
        exit 1
7
fi
8
 
4853 rajveer 9
ACTION=$1
10
if [ $ACTION != "UPDATE" -a $ACTION != "ROLLBACK" ]
11
then
12
        echo "Wrong input"
13
        echo "Usage: $0 <UPDATE|ROLLBACK>"
14
        exit 1
15
fi
16
 
2266 chandransh 17
# resolve links - $0 may be a softlink
18
PRG="$0"
19
 
20
while [ -h "$PRG" ]; do
21
  ls=`ls -ld "$PRG"`
22
  link=`expr "$ls" : '.*-> \(.*\)$'`
23
  if expr "$link" : '/.*' > /dev/null; then
24
    PRG="$link"
25
  else
26
    PRG=`dirname "$PRG"`/"$link"
27
  fi
28
done
29
 
30
# Get standard environment variables
31
PRGDIR=`dirname $(readlink -f "$PRG")`
32
 
33
MEDIA_EXPORT_PATH="/var/www/"
34
PARTNERS_PATH="/var/www/static.saholic.com/partners/"
35
WEBSITE_JAVASCRIPT_PATH="/var/www/static.saholic.com/js/"
3568 chandransh 36
DATE=`date +%Y-%b-%d_%Hh%Mm`
37
LOGFILE=${MEDIA_EXPORT_PATH}/${DATE}.log               # Log file Name
38
LOGERR=${MEDIA_EXPORT_PATH}/ERRORS-${DATE}.log         # Error Log file Name
5981 rajveer 39
CLEAN_DATE=`date -d '3 day ago' +"%Y-%b-%d"`
2266 chandransh 40
 
3568 chandransh 41
# IO redirection for logging.
42
touch ${LOGFILE}
43
exec 6>&1           # Link file descriptor #6 with stdout.
44
                    # Saves stdout.
45
exec > ${LOGFILE}     # stdout replaced with file ${LOGFILE}.
46
touch ${LOGERR}
47
exec 7>&2           # Link file descriptor #7 with stderr.
48
                    # Saves stderr.
49
exec 2> ${LOGERR}     # stderr replaced with file ${LOGERR}.
50
 
4849 rajveer 51
DEPLOYED_TIMESTAMP=`cat /catalog-dumps/current.timestamp`
52
if [ $ACTION = "UPDATE" ]
53
then
54
        LATEST_TIMESTAMP=`cat /catalog-dumps/latest.timestamp`
55
        if [ "$DEPLOYED_TIMESTAMP" = "$LATEST_TIMESTAMP" ]
56
        then
57
                echo "Already latest version is deployed"
58
                exit 1
59
        fi
60
else
61
        LATEST_TIMESTAMP=`cat /catalog-dumps/previous.timestamp`
62
        if [ "INVALID" = "$LATEST_TIMESTAMP" ]
63
        then
64
                echo "Nothing to roll back"
65
                exit 1
66
        fi
67
fi
3943 rajveer 68
 
4849 rajveer 69
 
70
echo "Updating media files and document files"
3943 rajveer 71
echo "======================================================="
72
cd ${MEDIA_EXPORT_PATH}
4849 rajveer 73
if [ $ACTION == "UPDATE" ]
74
then
75
	rsync -az --delete media/  media-previous
76
	rsync -az --delete media-offline/  media
77
	rsync -az --delete documents/  documents-previous
78
	rsync -az --delete documents-offline/  documents
79
else
80
	rsync -az --delete media-previous/  media
81
	rsync -az --delete documents-previous/  documents
82
fi
3943 rajveer 83
 
2266 chandransh 84
echo "Updating product list for partners"
85
echo "======================================================="
86
cd ${MEDIA_EXPORT_PATH}
87
tar -zxf partners.tgz
88
unlink partners
89
ln -s partners-${LATEST_TIMESTAMP} partners
90
cp -r partners/* ${PARTNERS_PATH}
5981 rajveer 91
rm -rf partners-${CLEAN_DATE}*
2266 chandransh 92
 
93
echo "Updating javascripts for product comparison"
94
echo "======================================================="
95
tar -zxf javascripts.tgz
96
unlink javascripts
97
ln -s javascripts-${LATEST_TIMESTAMP} javascripts
98
cp -r javascripts/* ${WEBSITE_JAVASCRIPT_PATH}
5981 rajveer 99
rm -rf javascripts-${CLEAN_DATE}*
2266 chandransh 100
 
3568 chandransh 101
#Clean up IO redirection
102
exec 1>&6 6>&-      # Restore stdout and close file descriptor #6.
103
exec 2>&7 7>&-      # Restore stdout and close file descriptor #7.
104
 
105
if [ -s "${LOGERR}" ]
106
        then
107
                exit 1
108
        else
109
                exit 0
110
fi
4849 rajveer 111
 
112
if [ $ACTION == "UPDATE" ]
113
then
114
    cat /catalog-dumps/current.timestamp > /catalog-dumps/previous.timestamp
115
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
116
else
117
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
118
    echo "INVALID" > /catalog-dumps/previous.timestamp
119
fi
120
 
5000 rajveer 121
 
122
DATE=`date -d '2 days ago' +%Y-%b-%d`
123
EXPORT_PATH="/var/www"
124
rm -rf ${EXPORT_PATH}/*${DATE}*