#!/bin/sh # Copyright (C) 2017 Dmitry Bogatov # Author: Dmitry Bogatov # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 3 # of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . set -e postrm () { # Following code makes sure, that after removal of package, in default # setup, the only files belonged to log user, belong to root. # # This way user can be safely removed, solving part of #848239 (need # interoperation from dh-sysuser). # # Sure, system administrator can make stupid thing and chown some file # to log user, but consequences do not seem to be so severe. After # all, with great power comes great responsibility. if [ -d "/var/log/runit/$NAME" ] ; then chown --recursive root:root "/var/log/runit/$NAME" fi if [ "$1" != 'purge' ] ; then return fi # If runscript was never invoked, there will be no files # in this directory, and `dpkg' will remove it. In this case, # we have nothing to do. for supervise in "/var/lib/runit/supervise/$NAME" \ "/var/lib/runit/log/supervise/$NAME" ; do if [ -d "$supervise" ] ; then # Actually only `down' may be absent, but it does not # matter. for file in control lock ok pid stat status down ; do rm -f "$supervise/$file" done # It should be empty now. If it is not, it means that # system administrator put something there. It is very # stupid, but will of user is sacred, and directory is # left as-is in such case. # # NOTE: Non-POSIX option is used. The day coreutils will # no longer be essential, it will require a fix. rmdir --ignore-fail-on-non-empty "$supervise" fi done } "$@"