#!/bin/sh

DOBACKUP=yes
: ${MV:=mv} ${CP:=cp} ${CHMOD:=chmod} ${RM:=rm}

doinst() {
  echo "Installing $1 as $2..."
  case $DOBACKUP in
  [yY]*)	$MV "$2" "$2".orig
  esac
  $CP "$1" "$2"
  if [ -n "$MODE" ]
  then
    $CHMOD "$MODE" "$2"
  fi
}

installbin() {
  source=$1
  shift
  for file
  do
    if [ -f "$file" ]
    then
      doinst "$source" "$file"
      return
    fi
  done

  echo "Warning: unable to find system location for $source"
  doinst "$source" "$1"
}

#echo "Make backup copies [yN]?  \c"
#read DOBACKUP
#export DOBACKUP

echo

MODE=4711
export MODE
installbin passwd /bin/passwd /usr/bin/passwd /usr/ucb/passwd /usr/bsd/passwd
MODE=
export MODE

installbin tconf /bin/tconf /sbin/tconf /usr/bin/tconf /usr/sbin/tconf

if [ ! -s /etc/tpasswd.conf ]
then
  ./tconf
fi

if [ ! -f /etc/tpasswd ]
then
  $CP /dev/null /etc/tpasswd && $CHMOD 400 /etc/tpasswd
fi

echo "Install and replace the 'login' and 'su' executables?"
echo "(Only do this if you are sure of what you are doing!)  [yn] \c"
read FULLINST

case $FULLINST in
[yY]*)	;;
*)	exit 0
esac

installbin login /bin/login /usr/bin/login /usr/ucb/login /usr/bsd/login

MODE=4711
export MODE
installbin su /bin/su /sbin/su /usr/bin/su /usr/sbin/su /usr/etc/su /usr/ucb/su /usr/bsd/su
MODE=
export MODE

echo Done.
