1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
#! /bin/sh
# ex: et sw=4 ts=4 sts=4
set -e
. /usr/share/debconf/confmodule
HOME_DIR=/var/lib/buildbot
MASTERS_DIR=$HOME_DIR/masters
USER_NAME=buildbot
USER_DESCR="Buildbot system user"
handle_old_master()
{
local basedir="$1"
local name=$(basename "$basedir")
local pid sed_expr id
echo "Buildbot master instance in $basedir has been created with a 0.x version and cannot be automatically upgraded."
if [ -r "$instance/twistd.pid" ]; then
pid=$(cat "$instance/twistd.pid")
fi
if kill -0 "$pid" >/dev/null 2>&1; then
echo "Stopping Buildbot master in $basedir (PID $pid) ..."
kill $(cat "$pidfile") || true
fi
echo "Please see buildbot(7) for instructions."
}
upgrade_master()
{
local basedir="$1"
local name="$(basename $basedir)"
local was_running=false
if ! [ -d "$basedir" ]; then
return
fi
if [ -f "$basedir/.no-auto-upgrade" ]; then
handle_old_master "$basedir"
return
fi
echo "Upgrading buildbot master instance in $basedir ..."
if [ -d /run/systemd/system ]; then
if systemctl is-active --quiet "buildbot@$name.service"; then
was_running=true
deb-systemd-invoke stop "buildbot@$name.service"
fi
else
if invoke-rc.d buildbot status "$name" >/dev/null 2>&1; then
was_running=true
invoke-rc.d buildbot stop "$name"
fi
fi
buildbot upgrade-master -q "$basedir"
if [ "$was_running" = true ]; then
if [ -d /run/systemd/system ]; then
deb-systemd-invoke start "buildbot@$name.service"
else
invoke-rc.d buildbot start "$name"
fi
fi
}
case "$1" in
configure|reconfigure)
# Create builbot user account if not exist
if ! getent passwd buildbot>/dev/null; then
echo "Creating $USER_DESCR ..." >&2
useradd \
--system \
--shell /bin/false \
--no-create-home \
--user-group \
--comment "$USER_DESCR" \
--home-dir "$HOME_DIR" \
"$USER_NAME"
fi
mkdir -p $HOME_DIR
mkdir -p $MASTERS_DIR
# Fix permissions
chown $USER_NAME: $HOME_DIR $MASTERS_DIR
existing_masters=$(find $MASTERS_DIR -mindepth 1 -maxdepth 1 -type d -print -quit)
if [ -z "$2" ]; then
# first install
if [ -z "$existing_masters" ]; then
echo "No master instances are configured. See buildbot(7) for instructions." >&2
fi
else
# package upgrade
db_get buildbot/upgrade-on-install || true
if [ "$RET" = true ]; then
# Upgrade any existing master instances
for inst in $MASTERS_DIR/*; do
upgrade_master $inst >&2
done
fi
fi
update-rc.d buildbot defaults >/dev/null
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0
|