]> git.proxmox.com Git - pmg-api.git/blob - debian/postinst
nodeconfig: parse acme config before writing
[pmg-api.git] / debian / postinst
1 #!/bin/sh
2
3 set -e
4
5
6 ucf_register_templates() {
7 for template in /etc/pmg/templates/*; do
8 [ -e "$template" ] || continue;
9 template_base=$(basename "${template}")
10 if echo "${template_base}" | grep -q '\.ucf-'; then
11 continue
12 fi
13 if [ -e "/var/lib/pmg/templates/${template_base}" ]; then
14 ucf "/var/lib/pmg/templates/${template_base}" "${template}"
15 ucfr pmg-api "${template}"
16 else
17 echo "template '${template}' not shipped by pmg-api."
18 fi
19 done
20 }
21
22 case "$1" in
23 triggered)
24
25 test -e /proxmox_install_mode && exit 0;
26
27 # Note: reload-or-try-restart fails if service is not active
28 for service in pmgdaemon pmgproxy pmg-smtp-filter pmgpolicy pmgtunnel pmgmirror; do
29 if systemctl --quiet is-active $service.service ; then
30 deb-systemd-invoke reload-or-try-restart $service.service >/dev/null || true
31 fi
32 done
33
34 exit 0
35 ;;
36
37 configure)
38 # FIXME: remove in PMG 8.0
39 if test ! -e /proxmox_install_mode && test -n "$2" && dpkg --compare-versions "$2" 'lt' '7.0-2~'; then
40 # PMG 5 ISOs had a bug and did not generated a unique machine-id. below is a list of
41 # all machine-ids from all ISOs (released, tests & internal) possibly affected
42 if grep -q \
43 -e e378bde63ac54872a85af23a8e4dac73 \
44 -e 932b668d1fad4709b4976d54152d223c \
45 -e 931a8410cd034202a26b0e19d56e157a \
46 -e 9a1f3c5284e1423c9b0e0ee5819db6c9 \
47 -e 5472a49c6436426fbebd7881f7b7f13b \
48 /etc/machine-id
49 then
50 echo "found static machine-id bug from Proxmox Mail Gateway ISO installer <= 5.4, regenerating machine-id"
51 systemd-id128 new | tee /etc/machine-id.new /var/lib/dbus/machine-id.new
52 # atomically replace
53 mv /etc/machine-id.new /etc/machine-id
54 mv /var/lib/dbus/machine-id.new /var/lib/dbus/machine-id
55 echo "new machine-id generated, a reboot is recommended"
56 else
57 echo "machine-id check OK"
58 fi
59 fi
60
61 if test ! -e /proxmox_install_mode ; then
62
63 pmgconfig init
64 pmgdb init
65
66 ucf_register_templates
67 pmgconfig sync --restart
68
69 if [ -z "$2" ]; then
70 if systemctl --quiet is-active pmgpolicy.service ; then
71 deb-systemd-invoke reload-or-try-restart postgresql.service >/dev/null || true
72 fi
73 deb-systemd-invoke restart postfix.service >/dev/null || true
74 fi
75
76 pmgdb update >/dev/null 2>&1 &
77
78 update-mime-database /usr/share/mime
79
80 else
81 # rewrite banner
82 pmgbanner || true
83 fi
84 ;;
85
86 abort-upgrade)
87 ucf_register_templates
88 ;;
89
90 abort-remove|abort-deconfigure)
91 ;;
92
93 *)
94 echo "postinst called with unknown argument \`$1'" >&2
95 exit 1
96 ;;
97 esac
98
99 # dh_installdeb will replace this with shell code automatically
100 # generated by other debhelper scripts.
101
102 #DEBHELPER#
103
104 if test ! -e /proxmox_install_mode ; then
105 for service in pmgdaemon pmgproxy; do
106 if [ -n "$2" ]; then
107 # Note: reload-or-try-restart fails if service is not active
108 if systemctl --quiet is-active $service.service ; then
109 deb-systemd-invoke reload-or-try-restart $service.service >/dev/null || true
110 fi
111 else
112 deb-systemd-invoke start $service.service > /dev/null || true
113 fi
114 done
115 fi
116
117 exit 0