]>
Commit | Line | Data |
---|---|---|
0854fb22 DM |
1 | #!/bin/sh |
2 | ||
3 | set -e | |
4 | ||
5 | ||
ac81f7c9 SI |
6 | ucf_register_templates() { |
7 | for template in /etc/pmg/templates/*; do | |
e97f0405 | 8 | [ -e "$template" ] || continue; |
ac81f7c9 SI |
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 | ||
57e033cd FG |
22 | migrate_apt_auth_conf() { |
23 | output="" | |
24 | removed="" | |
25 | match=0 | |
26 | ||
27 | while read -r l; do | |
28 | if echo "$l" | grep -q "^machine enterprise.proxmox.com/debian/pmg"; then | |
29 | match=1 | |
30 | elif echo "$l" | grep -q "machine"; then | |
31 | match=0 | |
32 | fi | |
33 | ||
34 | if test "$match" = "1"; then | |
35 | removed="$removed\n$l" | |
36 | else | |
37 | output="$output\n$l" | |
38 | fi | |
39 | done < /etc/apt/auth.conf | |
40 | ||
41 | if test -n "$removed"; then | |
42 | if test ! -e /etc/apt/auth.conf.d/pmg.conf; then | |
43 | echo "Migrating APT auth config for enterprise.proxmox.com to /etc/apt/auth.conf.d/pmg.conf .." | |
44 | echo "$removed" > /etc/apt/auth.conf.d/pmg.conf | |
45 | else | |
46 | echo "Removing stale APT auth config from /etc/apt/auth.conf" | |
47 | fi | |
48 | echo "$output" > /etc/apt/auth.conf | |
49 | fi | |
50 | } | |
51 | ||
0854fb22 | 52 | case "$1" in |
3cf7a549 DM |
53 | triggered) |
54 | ||
55 | test -e /proxmox_install_mode && exit 0; | |
56 | ||
57 | # Note: reload-or-try-restart fails if service is not active | |
b970485e DM |
58 | for service in pmgdaemon pmgproxy pmg-smtp-filter pmgpolicy pmgtunnel pmgmirror; do |
59 | if systemctl --quiet is-active $service.service ; then | |
0e927889 | 60 | deb-systemd-invoke reload-or-try-restart $service.service >/dev/null || true |
b970485e DM |
61 | fi |
62 | done | |
07f15aa3 | 63 | |
3cf7a549 DM |
64 | exit 0 |
65 | ;; | |
66 | ||
0854fb22 | 67 | configure) |
737c6f66 TL |
68 | # FIXME: remove in PMG 8.0 |
69 | if test ! -e /proxmox_install_mode && test -n "$2" && dpkg --compare-versions "$2" 'lt' '7.0-2~'; then | |
70 | # PMG 5 ISOs had a bug and did not generated a unique machine-id. below is a list of | |
71 | # all machine-ids from all ISOs (released, tests & internal) possibly affected | |
72 | if grep -q \ | |
73 | -e e378bde63ac54872a85af23a8e4dac73 \ | |
74 | -e 932b668d1fad4709b4976d54152d223c \ | |
75 | -e 931a8410cd034202a26b0e19d56e157a \ | |
76 | -e 9a1f3c5284e1423c9b0e0ee5819db6c9 \ | |
77 | -e 5472a49c6436426fbebd7881f7b7f13b \ | |
78 | /etc/machine-id | |
79 | then | |
80 | echo "found static machine-id bug from Proxmox Mail Gateway ISO installer <= 5.4, regenerating machine-id" | |
81 | systemd-id128 new | tee /etc/machine-id.new /var/lib/dbus/machine-id.new | |
82 | # atomically replace | |
83 | mv /etc/machine-id.new /etc/machine-id | |
84 | mv /var/lib/dbus/machine-id.new /var/lib/dbus/machine-id | |
85 | echo "new machine-id generated, a reboot is recommended" | |
86 | else | |
87 | echo "machine-id check OK" | |
88 | fi | |
89 | fi | |
ebe7f62b | 90 | |
7aa01a97 | 91 | if test ! -e /proxmox_install_mode ; then |
cf521b5d | 92 | |
5e374987 DM |
93 | pmgconfig init |
94 | pmgdb init | |
ac81f7c9 SI |
95 | |
96 | ucf_register_templates | |
49606351 | 97 | pmgconfig sync --restart |
ef23c01a | 98 | |
49606351 | 99 | if [ -z "$2" ]; then |
5e374987 | 100 | if systemctl --quiet is-active pmgpolicy.service ; then |
0e927889 | 101 | deb-systemd-invoke reload-or-try-restart postgresql.service >/dev/null || true |
5e374987 | 102 | fi |
0e927889 | 103 | deb-systemd-invoke restart postfix.service >/dev/null || true |
ef23c01a | 104 | fi |
ef23c01a | 105 | |
5e374987 | 106 | pmgdb update >/dev/null 2>&1 & |
cf521b5d | 107 | |
5e374987 | 108 | update-mime-database /usr/share/mime |
ac81f7c9 | 109 | |
07959366 DM |
110 | else |
111 | # rewrite banner | |
112 | pmgbanner || true | |
5e374987 | 113 | fi |
57e033cd FG |
114 | |
115 | if test ! -e /proxmox_install_mode && test -n "$2" && dpkg --compare-versions "$2" 'lt' '7.1-7~'; then | |
116 | if test -e /etc/apt/auth.conf ; then | |
117 | migrate_apt_auth_conf | |
118 | fi | |
119 | fi | |
0854fb22 DM |
120 | ;; |
121 | ||
ac81f7c9 SI |
122 | abort-upgrade) |
123 | ucf_register_templates | |
124 | ;; | |
125 | ||
126 | abort-remove|abort-deconfigure) | |
0854fb22 DM |
127 | ;; |
128 | ||
129 | *) | |
130 | echo "postinst called with unknown argument \`$1'" >&2 | |
131 | exit 1 | |
132 | ;; | |
133 | esac | |
134 | ||
135 | # dh_installdeb will replace this with shell code automatically | |
136 | # generated by other debhelper scripts. | |
137 | ||
138 | #DEBHELPER# | |
139 | ||
2305fb86 DM |
140 | if test ! -e /proxmox_install_mode ; then |
141 | for service in pmgdaemon pmgproxy; do | |
142 | if [ -n "$2" ]; then | |
143 | # Note: reload-or-try-restart fails if service is not active | |
144 | if systemctl --quiet is-active $service.service ; then | |
0e927889 | 145 | deb-systemd-invoke reload-or-try-restart $service.service >/dev/null || true |
2305fb86 DM |
146 | fi |
147 | else | |
0e927889 | 148 | deb-systemd-invoke start $service.service > /dev/null || true |
2305fb86 DM |
149 | fi |
150 | done | |
151 | fi | |
152 | ||
0854fb22 | 153 | exit 0 |