From: Stephen Gran Date: Sun, 9 Aug 2009 23:34:43 +0000 (+0100) Subject: first pass at making ud-replicate reload bind; admittedly the wrong solution X-Git-Tag: userdir-ldap-0.3.71~5 X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap.git;a=commitdiff_plain;h=cb4b05f12e66b5478e6b8ed245b24a767caa311c first pass at making ud-replicate reload bind; admittedly the wrong solution Signed-off-by: Stephen Gran --- diff --git a/ud-replicate b/ud-replicate index 7228815..765cc3a 100755 --- a/ud-replicate +++ b/ud-replicate @@ -32,11 +32,15 @@ else fi tempdir='' +tempfile='' +tempfile2='' cleanup () { rm -f lock rm -rf $tempdir + rm -f $tempfile + rm -f $tempfile2 } PATH=/sbin:/usr/sbin:/bin:/usr/bin @@ -59,6 +63,17 @@ $LOCALSYNCON) ;; esac +tempfile=$(mktemp) +tempfile2=$(mktemp) + +if [ -e /var/lib/misc/thishost/dns-sshfp ]; then + cp /var/lib/misc/thishost/dns-sshfp $tempfile +fi + +if [ -e /var/lib/misc/thishost/dns-zone ]; then + cp /var/lib/misc/thishost/dns-zone $tempfile2 +fi + rsync ${verbose} --delete-after -e 'ssh -i /etc/ssh/ssh_host_rsa_key -o PreferredAuthentications=publickey' -rp "${udhost}/var/cache/userdir-ldap/hosts/$HOST" . makedb "$HOST/passwd.tdb" -o passwd.db.t @@ -146,3 +161,27 @@ if [ -d "/etc/postfix" -a -f "$HOST/forward-alias" ]; then sed -e "s/:/@$EMAILAPPEND/" $HOST/forward-alias > /etc/postfix/debian /usr/sbin/postmap hash:/etc/postfix/debian < /etc/postfix/debian || true fi + +rndc_reload=0 +if [ -e /var/lib/misc/thishost/dns-sshfp ]; then + if cmp /var/lib/misc/thishost/dns-sshfp $tempfile; then + rndc_reload=1 + fi +fi + +if [ -e /var/lib/misc/thishost/dns-zone ]; then + if cmp /var/lib/misc/thishost/dns-zone $tempfile2; then + rndc_reload=1 + fi +fi + +# FIXME: +# this needs to rebuild the zone file with a new serial so it can replicate. +# this means splitting the functionality in the current git hook into two scripts, +# one of which takes a file and maybe some other arguments and rebuilds the zone +# file, the other doing the git pull and determining which files to rebuild. +# this is just a temporary hack to have some logical flow in place. + +if [ "${rndc_reload}" -gt 0 ]; then + rndc reload +fi