X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=apache2-vhost-update;h=cf5b1dbcb0992995b1817d24a94cb0786fce23e0;hb=8638348a3e4797018c6ac97afdd001765f10e496;hp=61c5bf369567ec375acd91039e470a6aafaca1b3;hpb=09efc8cd9d37f03c72dae07112972b145fee82b8;p=dsa-metapackages.git diff --git a/apache2-vhost-update b/apache2-vhost-update index 61c5bf3..cf5b1db 100755 --- a/apache2-vhost-update +++ b/apache2-vhost-update @@ -16,10 +16,10 @@ # All config changes are tracked in RCS. # # needs something like this in sudoers: -# %apachectrl ALL=(root) /usr/sbin/restart-apache +# %apachectrl ALL=(root) /usr/sbin/apache2-vhost-update -# Copyright (c) 2009 Peter Palfrader +# Copyright (c) 2009,2010 Peter Palfrader # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the @@ -42,7 +42,7 @@ -STATINGDIR="/etc/apache2/sites-staging" +STAGINGDIR="/etc/apache2/sites-staging" DESTINATION="/etc/apache2/sites-available" usage() { @@ -91,8 +91,12 @@ if echo "$site" | grep /; then exit 1 fi -if ! [ -f "$STATINGDIR/$site" ]; then - echo "$STATINGDIR/$site does not exist or is not a file" >&2 +if [ -f "$STAGINGDIR/$site.conf" ] ; then + site="$site.conf" +fi + +if ! [ -f "$STAGINGDIR/$site" ]; then + echo "$STAGINGDIR/$site does not exist or is not a file" >&2 exit 1 fi @@ -102,7 +106,7 @@ if [ "$?" != "0" ]; then exit 1 fi -if diff "$STATINGDIR/$site" "$DESTINATION/$site" > /dev/null; then +if diff "$STAGINGDIR/$site" "$DESTINATION/$site" > /dev/null; then echo "No differences, not doing anything." >&2 exit 1 fi @@ -112,7 +116,29 @@ if [ "$?" != "0" ]; then echo "Could not get a lock/checkout $DESTINATION/$site." >&2 exit 1 fi -cp -f "$STATINGDIR/$site" "$DESTINATION/$site" + +cp -f "$STAGINGDIR/$site" "$DESTINATION/$site" + +if grep -i include "$DESTINATION/$site" > /dev/null; then + echo "New site may have include statements - rejecting." >&2 + rm -f "$DESTINATION/$site" + co "$DESTINATION/$site" + exit 1 +fi + +if grep -i LoadModule "$DESTINATION/$site" > /dev/null; then + echo "New site may have LoadModule statements - rejecting." >&2 + rm -f "$DESTINATION/$site" + co "$DESTINATION/$site" + exit 1 +fi + +if grep -i LoadFile "$DESTINATION/$site" > /dev/null; then + echo "New site may have LoadFile statements - rejecting." >&2 + rm -f "$DESTINATION/$site" + co "$DESTINATION/$site" + exit 1 +fi /usr/sbin/apache2ctl configtest if [ "$?" != "0" ]; then @@ -122,6 +148,9 @@ if [ "$?" != "0" ]; then exit 1 fi +echo "Differences:" +rcsdiff -u "$DESTINATION/$site" + echo "update run by $USER($SUDO_USER) at `date -R -u` on `hostname -f`" | \ ci -u "$DESTINATION/$site" if [ "$?" != "0" ]; then