9706: Go service postinst improvements.
[arvados.git] / build / go-package-scripts / postinst
1 #!/bin/sh
2
3 set -e
4
5 # NOTE: This package name detection will only work on Debian.
6 # If this postinst script ever starts doing work on Red Hat,
7 # we'll need to adapt this code accordingly.
8 script="$(basename "$0")"
9 pkg="${script%.postinst}"
10 systemd_unit="${pkg}.service"
11
12 case "${1}" in
13     configure)
14         if [ -e /run/systemd/system ]; then
15             eval "$(systemctl -p UnitFileState show "$systemd_unit")"
16             case "$UnitFileState" in
17                 disabled)
18                     systemctl enable "$systemd_unit"
19                     # Failing to start the service is not a package error,
20                     # so don't let an error here propagate up.
21                     systemctl start "$systemd_unit" || true
22                     ;;
23                 enabled)
24                     systemctl reload-or-try-restart "$systemd_unit" || true
25                     ;;
26             esac
27         fi
28         ;;
29 esac