]> git.proxmox.com Git - pmg-api.git/blame - debian/postinst
postinst: migrate/update APT auth config
[pmg-api.git] / debian / postinst
CommitLineData
0854fb22
DM
1#!/bin/sh
2
3set -e
4
5
ac81f7c9
SI
6ucf_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
22migrate_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 52case "$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 ;;
133esac
134
135# dh_installdeb will replace this with shell code automatically
136# generated by other debhelper scripts.
137
138#DEBHELPER#
139
2305fb86
DM
140if 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
151fi
152
0854fb22 153exit 0