cd before git pull
[public/expire-sites.git] / expire-sites
1 #!/bin/bash
2
3 # Configuration
4 WORKDIR=/opt/expire-sites
5 APACHEDIR=/etc/apache2
6 CONFIGFILE=${APACHEDIR}/conf-available/disable-expired-site.conf
7
8 # Check
9 if [ ! -e ${WORKDIR} ]; then
10    echo 'Unable to find work directory: ' ${WORKDIR} >&2
11    exit 1
12 fi
13
14 if [ ! -e ${APACHEDIR} ]; then
15    echo 'Unable to find Apache configuration directory: ' ${APACHEDIR} >&2
16    exit 1
17 fi
18
19 # Update repository
20 cd ${WORKDIR}
21 echo 'Updating repository'
22 git pull
23
24 # Ensure there are no uncommitted changes
25 cd ${APACHEDIR}
26 echo 'Checking for uncommited changes'
27 git diff --name-only --exit-code > /dev/null
28
29 if [ $? -ne 0 ]; then
30    echo "There are uncommited changes in ${APACHEDIR}." >&2
31    echo "Sincerely yours," >&2
32    echo "$(hostname)" >&2
33    exit 1
34 fi
35
36 # Generate updated configuration
37 cd ${WORKDIR}
38 echo 'Generating new configuration'
39 ./generate-expire-config > ${CONFIGFILE}
40
41 # Check if file has changed
42 cd ${APACHEDIR}
43
44 echo 'Checking for changes'
45 git diff --name-only --exit-code ${CONFIGFILE} > /dev/null
46
47 if [ $? -ne 0 ]; then
48    echo 'Changes detected: Commiting updated configuration'
49    git add ${CONFIGFILE}
50    git commit -m '[CRON] Updated list of expired sites'
51
52    echo 'Reloading apache'
53    service apache2 reload
54 else
55    echo 'No changes detected'
56 fi