757768eb9f6be7136843dcfdb9d872b181d4f46f
[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 echo 'Updating repository'
21 git pull
22
23 # Ensure there are no uncommitted changes
24 cd ${APACHEDIR}
25 echo 'Checking for uncommited changes'
26 git diff --name-only --exit-code > /dev/null
27
28 if [ $? -ne 0 ]; then
29    echo "There are uncommited changes in ${APACHEDIR}." >&2
30    echo "Sincerely yours," >&2
31    echo "$(hostname)" >&2
32    exit 1
33 fi
34
35 # Generate updated configuration
36 cd ${WORKDIR}
37 echo 'Generating new configuration'
38 ./generate-expire-config > ${CONFIGFILE}
39
40 # Check if file has changed
41 cd ${APACHEDIR}
42
43 echo 'Checking for changes'
44 git diff --name-only --exit-code ${CONFIGFILE} > /dev/null
45
46 if [ $? -ne 0 ]; then
47    echo 'Changes detected: Commiting updated configuration'
48    git add ${CONFIGFILE}
49    git commit -m '[CRON] Updated list of expired sites'
50
51    echo 'Reloading apache'
52    service apache2 reload
53 else
54    echo 'No changes detected'
55 fi