#!/bin/sh
PATH=/usr/bin:/etc/athena:/usr/athena/etc

srvd=/srvd

localfiles='
  /etc/athena/telnetd
  /etc/athena/sshd
  /etc/athena/xlogin
  /usr/bin/login'

servers='
  krb524d krb5kdc kdb5_util kadmind kadmind4 v5passwdd kpropd
  zephyrd sserver kshd klogind login.krb5 ftpd lpd fxserver
  xdm discussd olcd lumberjack rpd polld olcm rkinitd lertsrv
  update_server'

# Update file which live on local disk.
for f in $localfiles; do
  echo "Updating $f"
  cp -p $srvd$f $f.new
  mv $f.new $f
done

# Update files in /usr/athena/etc if they were copied local by mkserv.
if [ -d /var/server/usr/athena/etc ]; then
  for f in $servers; do
    localfile=/var/server/usr/athena/etc/$f
    srvdfile=$srvd/usr/athena/etc/$f
    if [ -f $localfile -a ! -h $localfile ]; then
      echo "Updating $localfile"
      cp -p $srvdfile $localfile.new
      mv $localfile.new $localfile
    fi
  done
fi

# Restart update_server if it's running.
pid=`ps -fu 0 | awk '/update_server$/ { print $2; exit; }'`
if [ -n "$pid" ]; then
  echo "Restarting update_server (pid $pid)."
  kill "$pid"
  update_server
fi
