Subversion Repositories SmartDukaan

Rev

Rev 4853 | Go to most recent revision | 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
2266 chandransh 39
 
3568 chandransh 40
# IO redirection for logging.
41
touch ${LOGFILE}
42
exec 6>&1           # Link file descriptor #6 with stdout.
43
                    # Saves stdout.
44
exec > ${LOGFILE}     # stdout replaced with file ${LOGFILE}.
45
touch ${LOGERR}
46
exec 7>&2           # Link file descriptor #7 with stderr.
47
                    # Saves stderr.
48
exec 2> ${LOGERR}     # stderr replaced with file ${LOGERR}.
49
 
4849 rajveer 50
DEPLOYED_TIMESTAMP=`cat /catalog-dumps/current.timestamp`
51
if [ $ACTION = "UPDATE" ]
52
then
53
        LATEST_TIMESTAMP=`cat /catalog-dumps/latest.timestamp`
54
        if [ "$DEPLOYED_TIMESTAMP" = "$LATEST_TIMESTAMP" ]
55
        then
56
                echo "Already latest version is deployed"
57
                exit 1
58
        fi
59
else
60
        LATEST_TIMESTAMP=`cat /catalog-dumps/previous.timestamp`
61
        if [ "INVALID" = "$LATEST_TIMESTAMP" ]
62
        then
63
                echo "Nothing to roll back"
64
                exit 1
65
        fi
66
fi
3943 rajveer 67
 
4849 rajveer 68
 
69
echo "Updating media files and document files"
3943 rajveer 70
echo "======================================================="
71
cd ${MEDIA_EXPORT_PATH}
4849 rajveer 72
if [ $ACTION == "UPDATE" ]
73
then
74
	rsync -az --delete media/  media-previous
75
	rsync -az --delete media-offline/  media
76
	rsync -az --delete documents/  documents-previous
77
	rsync -az --delete documents-offline/  documents
78
else
79
	rsync -az --delete media-previous/  media
80
	rsync -az --delete documents-previous/  documents
81
fi
3943 rajveer 82
 
2266 chandransh 83
echo "Updating product list for partners"
84
echo "======================================================="
85
cd ${MEDIA_EXPORT_PATH}
86
tar -zxf partners.tgz
87
unlink partners
88
ln -s partners-${LATEST_TIMESTAMP} partners
89
cp -r partners/* ${PARTNERS_PATH}
90
 
91
echo "Updating javascripts for product comparison"
92
echo "======================================================="
93
tar -zxf javascripts.tgz
94
unlink javascripts
95
ln -s javascripts-${LATEST_TIMESTAMP} javascripts
96
cp -r javascripts/* ${WEBSITE_JAVASCRIPT_PATH}
97
 
3568 chandransh 98
#Clean up IO redirection
99
exec 1>&6 6>&-      # Restore stdout and close file descriptor #6.
100
exec 2>&7 7>&-      # Restore stdout and close file descriptor #7.
101
 
102
if [ -s "${LOGERR}" ]
103
        then
104
                exit 1
105
        else
106
                exit 0
107
fi
4849 rajveer 108
 
109
if [ $ACTION == "UPDATE" ]
110
then
111
    cat /catalog-dumps/current.timestamp > /catalog-dumps/previous.timestamp
112
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
113
else
114
    echo ${LATEST_TIMESTAMP} > /catalog-dumps/current.timestamp
115
    echo "INVALID" > /catalog-dumps/previous.timestamp
116
fi
117
 
5000 rajveer 118
 
119
DATE=`date -d '2 days ago' +%Y-%b-%d`
120
EXPORT_PATH="/var/www"
121
rm -rf ${EXPORT_PATH}/*${DATE}*