post_install() {
  getent group kodi > /dev/null || groupadd -g 420 kodi
  if ! getent passwd kodi > /dev/null; then
    useradd -c 'kodi user' -u 420 -g kodi -G audio,video,network,optical \
      -d /var/lib/kodi -s /usr/bin/nologin kodi
    passwd -l kodi > /dev/null
    [[ ! -d /var/lib/kodi/.kodi ]] &&
      mkdir /var/lib/kodi/.kodi &&
      chown -R kodi:kodi /var/lib/kodi/.kodi
  fi

  echo "==>  Some drivers including Xorg's native modesetting may require the addition"
  echo "==>  of /etc/X11/Xwrapper.config for X to initialize. If kodi.service fails to"
  echo "==>  start, create that file containing the following single line:"
  echo "==>  needs_root_rights = yes"
  echo "==>  See: https://wiki.archlinux.org/index.php/Xorg#Rootless_Xorg_.28v1.16.29"
}

post_upgrade() {
  post_install $1
  if ! getent group kodi | cut -d: -f3 | grep 420 > /dev/null 2>&1; then
    groupmod -g 420 kodi > /dev/null 2>&1
  fi
  if ! id -u kodi | grep 420 > /dev/null 2>&1; then
    usermod -u 420 kodi > /dev/null 2>&1
    if [[ $? -ne 0 ]]; then
      echo "==> Changing uid of user kodi failed."
      echo "==> It is recommended that the uid is changed."
      echo "==> Stop all processes running under the kodi user and reinstall kodi"
      echo "==> or change the uid manually. (usermod -u 420 kodi)"
    fi
    chown -R kodi:kodi /var/lib/kodi
  fi
}

post_remove() {
  echo "==> Delete the kodi user if you are certain no processes are running under it."
  echo "==> userdel kodi"
  echo "==> groupdel kodi"
}

# vim:set ts=2 sw=2 et:
