#!/bin/sh

set -e

dpkg-maintscript-helper dir_to_symlink \
  /var/lib/netdata/www/.well-known /usr/share/netdata/www/.well-known 1.18.1~ netdata -- "$@"
dpkg-maintscript-helper dir_to_symlink \
  /var/lib/netdata/www/css /usr/share/netdata/www/css 1.18.1~ netdata -- "$@"
dpkg-maintscript-helper dir_to_symlink \
  /var/lib/netdata/www/fonts /usr/share/netdata/www/fonts 1.18.1~ netdata -- "$@"
dpkg-maintscript-helper dir_to_symlink \
  /var/lib/netdata/www/images /usr/share/netdata/www/images 1.18.1~ netdata -- "$@"
dpkg-maintscript-helper dir_to_symlink \
  /var/lib/netdata/www/lib /usr/share/netdata/www/lib 1.18.1~ netdata -- "$@"
dpkg-maintscript-helper dir_to_symlink \
  /var/lib/netdata/www/static /usr/share/netdata/www/static 1.18.1~ netdata -- "$@"

case "$1" in
  configure|reconfigure)
    if ! getent group netdata > /dev/null; then
      addgroup --quiet --system netdata
    fi

    if ! getent passwd netdata > /dev/null; then
      adduser --quiet --system --ingroup netdata --home /var/lib/netdata --no-create-home netdata
    fi

    for item in docker nginx varnish haproxy adm nsd proxy squid ceph nobody I2C; do
      if getent group $item > /dev/null 2>&1; then
        usermod -a -G $item netdata
      fi
    done
    # Netdata must be able to read /etc/pve/qemu-server/* and /etc/pve/lxc/*
    # for reading VMs/containers names, CPU and memory limits on Proxmox.
    if [ -d "/etc/pve" ] && getent group "www-data" > /dev/null 2>&1; then
      usermod -a -G www-data netdata
    fi

    if ! dpkg-statoverride --list /var/lib/netdata > /dev/null 2>&1; then
      dpkg-statoverride --update --add netdata netdata 0755 /var/lib/netdata
    fi

    if ! dpkg-statoverride --list /var/lib/netdata/www > /dev/null 2>&1; then
      dpkg-statoverride --update --add root netdata 0755 /var/lib/netdata/www
    fi

    if ! dpkg-statoverride --list /var/cache/netdata > /dev/null 2>&1; then
      dpkg-statoverride --update --add netdata netdata 0755 /var/cache/netdata
    fi

    if ! dpkg-statoverride --list /var/run/netdata > /dev/null 2>&1; then
      dpkg-statoverride --update --add netdata netdata 0755 /var/run/netdata
    fi

    if ! dpkg-statoverride --list /var/log/netdata > /dev/null 2>&1; then
      dpkg-statoverride --update --add netdata adm 02750 /var/log/netdata
    fi

    dpkg-statoverride --force --update --add root netdata 0775 /var/lib/netdata/registry > /dev/null 2>&1

    chown -R root:netdata /usr/libexec/netdata/plugins.d
    setcap cap_dac_read_search,cap_sys_ptrace+ep /usr/libexec/netdata/plugins.d/apps.plugin
    setcap cap_dac_read_search+ep /usr/libexec/netdata/plugins.d/slabinfo.plugin
    setcap cap_dac_read_search+ep /usr/libexec/netdata/plugins.d/debugfs.plugin

    if capsh --supports=cap_perfmon 2>/dev/null; then
        setcap cap_perfmon+ep /usr/libexec/netdata/plugins.d/perf.plugin
    else
        setcap cap_sys_admin+ep /usr/libexec/netdata/plugins.d/perf.plugin
    fi

    if [ -f "/usr/libexec/netdata/plugins.d/go.d.plugin" ]; then
      setcap "cap_net_admin+epi cap_net_raw=eip" /usr/libexec/netdata/plugins.d/go.d.plugin
    fi

    chmod 4750 /usr/libexec/netdata/plugins.d/cgroup-network
    chmod 4750 /usr/libexec/netdata/plugins.d/nfacct.plugin

    # Workaround if system does not have ebpf.plugin
    chmod -f 4750 /usr/libexec/netdata/plugins.d/ebpf.plugin || true

    # Workaround for other plugins not installed directly by this package
    chmod -f 4750 /usr/libexec/netdata/plugins.d/freeipmi.plugin || true
    chmod -f 4750 /usr/libexec/netdata/plugins.d/ioping || true

    ;;
esac

#DEBHELPER#

exit 0
