|
#!/bin/sh
|
|
# postinst script for smart-proxy
|
|
#
|
|
# see: dh_installdeb(1)
|
|
|
|
set -e
|
|
|
|
USERNAME="foreman-proxy"
|
|
GROUPNAME="foreman-proxy"
|
|
FOREMAN_HOME="/usr/share/foreman-proxy"
|
|
CONFIGDIR="/etc/foreman-proxy"
|
|
|
|
# summary of how this script can be called:
|
|
# * <postinst> `configure' <most-recently-configured-version>
|
|
# * <old-postinst> `abort-upgrade' <new version>
|
|
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
|
# <new-version>
|
|
# * <postinst> `abort-remove'
|
|
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
|
# <failed-install-package> <version> `removing'
|
|
# <conflicting-package> <version>
|
|
# for details, see http://www.debian.org/doc/debian-policy/ or
|
|
# the debian-policy package
|
|
|
|
case "$1" in
|
|
configure)
|
|
getent group $GROUPNAME >/dev/null || groupadd -r $GROUPNAME
|
|
getent passwd $USERNAME >/dev/null || \
|
|
useradd -r -g $GROUPNAME -d $FOREMAN_HOME -s /usr/sbin/nologin -c "Foreman" $USERNAME
|
|
|
|
mkdir -p "$FOREMAN_HOME/tmp"
|
|
mkdir -p "/var/log/foreman-proxy"
|
|
mkdir -p "/var/run/foreman-proxy"
|
|
chown $USERNAME:$GROUPNAME "$FOREMAN_HOME/tmp"
|
|
chown $USERNAME:$GROUPNAME "$FOREMAN_HOME/logs"
|
|
chown $USERNAME:$GROUPNAME "/var/log/foreman-proxy"
|
|
chown $USERNAME:$GROUPNAME "/var/run/foreman-proxy"
|
|
chown $USERNAME:root "$FOREMAN_HOME/config.ru"
|
|
|
|
if [ -d /var/lib/foreman-proxy ] ; then
|
|
# Migrate legacy monolithic proxy config
|
|
# To detect if a migration is needed, we run the script in a tmpdir and
|
|
# check if the data in the tmpdir is the same as what's already in place
|
|
cd /var/lib/foreman-proxy
|
|
if $FOREMAN_HOME/extra/migrate_settings.rb ./settings.yml; then
|
|
mv settings.yml $CONFIGDIR/settings.yml
|
|
ls *.yml >/dev/null 2>&1 && mv *.yml $CONFIGDIR/settings.d/
|
|
fi
|
|
cd /tmp && rm -rf /var/lib/foreman-proxy
|
|
# If we migrated, we also need to fix the settings.d dir
|
|
if grep -q ^:settings_directory: $CONFIGDIR/settings.yml
|
|
sed -i "s|:settings_directory:.*|:settings_directory: $CONFIGDIR/settings.d|" $CONFIGDIR/settings.yml
|
|
else
|
|
echo ":settings_directory: $CONFIGDIR/settings.d" >> $CONFIGDIR/settings.yml
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
abort-upgrade|abort-remove|abort-deconfigure)
|
|
;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
|
|
# dh_installdeb will replace this with shell code automatically
|
|
# generated by other debhelper scripts.
|
|
|
|
#DEBHELPER#
|
|
|
|
exit 0
|