#!/bin/bash
#
# SSHCHAT INSTALLATION
#
# NOTE: Instructions for a debian-based system with sysvinit

# 0. Compile program (if it has already been compiled, do nothing)

cd src && make || exit 1

# 1. Install program to /var/local/sshchat/bin

mkdir -p /var/local/sshchat/bin
cp sshchat sshchatd /var/local/sshchat/bin

# 2. Add user "chat"

adduser --system --group --gecos -,-,-,-,- --home /var/local/sshchat --shell /bin/false --disabled-password chat

# 3. Add the directory for ssh login and data

mkdir -p /var/local/sshchat/.ssh/../users/../invites/../run
chown chat:chat /var/local/sshchat/.ssh /var/local/sshchat/users /var/local/sshchat/invites
chmod 700 /var/local/sshchat/.ssh

# 4. Make sshchatd an startable daemon. For sysvinit:

cat > /etc/init.d/sshchatd <<'EOF' 
#! /bin/sh
# /etc/init.d/sshchatd: start or stop sshchatd.
### BEGIN INIT INFO
# Provides:          sshchatd
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop::    $network $local_fs $remote_fs
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start sshchatd at boot time
# Description:       Manage the sschatd daemon.
### END INIT INFO


FLAGS="start 20 2 3 4 5 . stop 20 0 1 6 ."
# NO_RESTART_ON_UPGRADE

test -x /var/local/sshchat/bin/sshchatd || exit 0

case "$1" in
  start)
      echo -n "Starting up sshchatd: sshchatd"
      /sbin/start-stop-daemon --chdir /var/local/sshchat --chuid chat --background --make-pidfile --pidfile /var/local/sshchat/run/sshchatd.pid --start --quiet --exec /var/local/sshchat/bin/sshchatd
      echo "."
    ;;
  stop)
      echo -n "Shutting down sshchatd: sshchatd"
      /sbin/start-stop-daemon --stop --quiet --pidfile /var/local/sshchat/run/sshchatd.pid
      echo "."
    ;;
  restart|force-reload)
      $0 stop
      $0 start
    ;;
  *)
      echo "Usage: /etc/init.d/sshchatd {start|stop|restart|force-reload}"
      exit 1
    ;;
esac

exit 0
EOF
chmod 755 /etc/init.d/sshchatd
update-rc.d sshchatd defaults

# XXX: TODO