]> git.proxmox.com Git - mirror_ifupdown2.git/blame - debian/ifupdown2.postinst
addons: address: fix merge-indentation issue
[mirror_ifupdown2.git] / debian / ifupdown2.postinst
CommitLineData
d1017fec 1#!/bin/sh
a6f80f0e 2set -e
3
d486dd0d
JF
4MYNAME="${0##*/}"
5
6report() { echo "${MYNAME}: $*" ; }
7report_warn() { report "Warning: $*" >&2 ; }
8report_err() { report "Error: $*" >&2 ; }
9
10fix_dhclient_file_with_space()
11{
12 # because of a typo an older ifupdown2 version was creating lease file
13 # with trailing space. In case we still have users with such files we
14 # need to strip that trailing whitespace.
15 for filename in `find /var/lib/dhcp/ -name "dhclient.*.leases "`
16 do
17 if [ -f "$filename " ];
18 then
19 interface_name=`echo $filename | cut -d'.' -f2,3,4,5`
20 mv "$filename " /var/lib/dhcp/dhclient6.$interface_name
21 fi
22 done
23}
24
25process_etc_network_interfaces()
26{
27 # Generic stuff done on all configurations
28 if [ -f /etc/network/interfaces ] ; then
29 if ! grep -q -E "^[[:space:]]*iface[[:space:]]+l[o0]([[:space:]]+inet([[:space:]]+loopback)?)?[[:space:]]*$" /etc/network/interfaces ; then
30 report_warn "No 'iface lo' definition found in /etc/network/interfaces"
31 fi
32
33 if ! grep -q "^[[:space:]]*\(allow-\|\)auto[[:space:]]\+\(.*[[:space:]]\+\|\)lo0\?\([[:space:]]\+\|$\)" /etc/network/interfaces ; then
34 report_warn "No 'auto lo' statement found in /etc/network/interfaces"
35 fi
36 else # ! -f /etc/network/interfaces
37 if [ -z "$2" ]; then
38 echo "Creating /etc/network/interfaces."
39 echo "# interfaces(5) file used by ifup(8) and ifdown(8)" > /etc/network/interfaces
40 echo "auto lo" >> /etc/network/interfaces
41 echo "iface lo inet loopback" >> /etc/network/interfaces
42 else
43 report_warn "/etc/network/interfaces does not exist"
44 fi
45 fi
46}
d1017fec 47
458b49fa
RP
48process_udev()
49{
50 # override default udev bridge and hotplug rules because they interfere with
51 # networking init script
52 udev_user_rulesdir=/etc/udev/rules.d/
53 udev_sys_rulesdir=/lib/udev/rules.d/
54 if [ -e $udev_user_rulesdir ]; then
55 udev_ifupdown2_overrides="80-networking.rules
56 60-bridge-network-interface.rules"
57 for u in ${udev_ifupdown2_overrides}
58 do
59 if [ -e ${udev_sys_rulesdir}/$u -a ! -e ${udev_user_rulesdir}/$u ]; then
60 (cd ${udev_user_rulesdir} && ln -sf /dev/null $u)
61 fi
62 done
63 fi
64}
65
0aa3d319
JF
66# restore file if we diverted it on install/upgrade
67_postinst_remove_diverts()
68{
69 diversions=$(LC_ALL=C.UTF-8 dpkg-divert --list | grep "^diversion of $1 .* by ifupdown2$" | wc -l 2> /dev/null)
70 if [ $diversions -gt 0 ];
71 then
72 dpkg-divert --remove --package ifupdown2 --rename $1
73 fi
74}
75
76postinst_remove_diverts()
77{
78 for filename in ifup ifdown ifquery ifreload
79 do
80 _postinst_remove_diverts "/sbin/$filename"
81 _postinst_remove_diverts "/usr/share/bash-completion/completions/$filename"
82 _postinst_remove_diverts "/etc/bash_completion.d/$filename"
83 _postinst_remove_diverts "/usr/share/man/man8/$filename.8.gz"
84 done
85 _postinst_remove_diverts "/usr/share/man/man5/interfaces.5.gz"
86}
87
a6f80f0e 88case "$1" in
89 configure)
d486dd0d
JF
90 fix_dhclient_file_with_space
91 process_etc_network_interfaces
458b49fa 92 process_udev
d486dd0d 93 chmod +x /usr/share/ifupdown2/__main__.py
0aa3d319 94 postinst_remove_diverts
d486dd0d
JF
95 ;;
96
97 abort-upgrade|abort-remove|abort-deconfigure)
98 ;;
a6f80f0e 99
d486dd0d
JF
100 *)
101 echo "postinst called with unknown argument \`$1'" >&2
102 exit 1
59dad2ca 103 ;;
a6f80f0e 104esac
105
d486dd0d 106
a6f80f0e 107#DEBHELPER#
ef7b7c04
JT
108
109exit 0