#!/bin/sh

_service_name=jenkins.service
_service_username=jenkins
_service_groupname="$_service_username"
_service_home_dir=/var/lib/jenkins
_service_tmpfiles_conf="$_service_username.conf"

_is_systemd_service_enabled() {
  /usr/bin/systemctl is-enabled --quiet "$_service_name" 2>/dev/null
}

post_install() {
  getent passwd "$_service_username" > /dev/null || /usr/sbin/useradd \
    --system --user-group --home-dir "$_service_home_dir" --create-home \
    --shell '/bin/bash' --skel /dev/null "$_service_username" &> /dev/null
  [ -n "$_service_tmpfiles_conf" ] && /usr/bin/systemd-tmpfiles \
    --create "$_service_tmpfiles_conf" 2>/dev/null
  mkdir -p /var/lib/jenkins{,/jobs}
  chown jenkins:jenkins /var/lib/jenkins{,/jobs}
  echo 'This installation of Jenkins uses port 8090 by default.'
  return 0
}

post_upgrade() {
  [ -n "$_service_tmpfiles_conf" ] && systemd-tmpfiles \
    --create "$_service_tmpfiles_conf" 2>/dev/null
  mkdir -p /var/lib/jenkins{,/jobs}
  chown -R jenkins:jenkins /var/lib/jenkins
  _is_systemd_service_enabled && cat <<EOF
=> Remember to issue the following commands:
  sudo systemctl --system daemon-reload
  sudo systemctl restart $_service_name
EOF
  return 0
}

pre_remove() {
  /usr/bin/systemctl stop $_service_name 2>/dev/null
  _is_systemd_service_enabled && \
    /usr/bin/systemctl disable $_service_name 2>/dev/null
  [ -n "$_service_tmpfiles_conf" ] && systemd-tmpfiles \
    --remove "$_service_tmpfiles_conf"
  return 0
}

post_remove() {
  getent passwd "$_service_username" > /dev/null && \
    /usr/sbin/userdel "$_service_username" 2>/dev/null
  for dir in "$_service_home_dir"; do
    [ -n "$dir" -a -d "$dir" ] && \
      echo "=> directory $dir needs to be removed manually"
  done
  return 0
}

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