#!/bin/bash

set -e

case $1 in
  preinst)
    exit 0
    ;;
  postinst)
    if [[ ${TARGET} ]]; then
      if ! chroot ${TARGET} 'getent group sshd 2>&1' > /dev/null; then
        if chroot ${TARGET} 'groupadd -g 50 sshd'; then
          echo 'Created group sshd'
        else
          echo 'Failed to create group sshd!'
          exit 1
        fi
      fi
      if ! chroot ${TARGET} 'getent passwd sshd 2>&1 > /dev/null'; then
        if chroot ${TARGET} 'useradd -c "sshd PrivSep" \
        -d /var/run/sshd -g sshd -s /bin/false -u 50 sshd'; then
          echo 'Created user sshd'
        else
          echo 'Failed to create user sshd!'
          exit 1
        fi
      fi

      if [ ! -f ${TARGET}/etc/ssh/ssh_host_rsa_key ]; then
        chroot ${TARGET} 'ssh-keygen -A'
      fi
    else
      if ! getent group sshd 2>&1 > /dev/null; then
        if groupadd -g 50 sshd; then
          echo 'Created group sshd'
        else
          echo 'Failed to create group sshd!'
          exit 1
        fi
      fi
      if ! getent passwd sshd 2>&1 > /dev/null; then
        if useradd -c 'sshd PrivSep' -d /var/run/sshd -g sshd \
        -s /bin/false -u 50 sshd; then
          echo 'Created user sshd'
        else
          echo 'Failed to create user sshd!'
          exit 1
        fi
      fi

      if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then
        ssh-keygen -A
      fi
    fi

    if [ ! -f ${TARGET}/etc/ssh/sshd_config ]; then
      cp ${TARGET}/usr/share/openssh/sshd_config ${TARGET}/etc/ssh
    fi
    ;;
  prerm)
    exit 0
    ;;
  postrm)
    exit 0
    ;;
esac
