]> git.proxmox.com Git - mirror_ifupdown2.git/blob - debian/python-ifupdown2.postinst
move ifupdown2/* .
[mirror_ifupdown2.git] / debian / python-ifupdown2.postinst
1 #!/bin/sh
2 # postinst script for ifupdown2
3 #
4 # see: dh_installdeb(1)
5
6 set -e
7
8 # summary of how this script can be called:
9 # * <postinst> `configure' <most-recently-configured-version>
10 # * <old-postinst> `abort-upgrade' <new version>
11 # * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12 # <new-version>
13 # * <postinst> `abort-remove'
14 # * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
15 # <failed-install-package> <version> `removing'
16 # <conflicting-package> <version>
17 # for details, see http://www.debian.org/doc/debian-policy/ or
18 # the debian-policy package
19
20 process_udev()
21 {
22 # override default udev bridge and hotplug rules because they interfere with
23 # networking init script
24 udev_user_rulesdir=/etc/udev/rules.d/
25 udev_sys_rulesdir=/lib/udev/rules.d/
26 if [ -e $udev_user_rulesdir ]; then
27 udev_ifupdown2_overrides="80-networking.rules
28 60-bridge-network-interface.rules"
29 for u in ${udev_ifupdown2_overrides}
30 do
31 if [ -e ${udev_sys_rulesdir}/$u -a ! -e ${udev_user_rulesdir}/$u ]; then
32 (cd ${udev_user_rulesdir} && ln -sf /dev/null $u)
33 fi
34 done
35 fi
36 }
37
38 MYNAME="${0##*/}"
39
40 report() { echo "${MYNAME}: $*" ; }
41 report_warn() { report "Warning: $*" >&2 ; }
42 report_err() { report "Error: $*" >&2 ; }
43
44 case "$1" in
45 configure)
46 # Create /etc/network/run
47 [ -d /run/network ] || mkdir -p /run/network
48
49 # for backward compatibility
50 if [ ! -f /etc/network/run ]; then
51 ln -sf /run/network /etc/network/run
52 fi
53
54 ln -sf /usr/share/python-ifupdown2/generate_interfaces.py \
55 /usr/share/doc/python-ifupdown2/examples/generate_interfaces.py
56
57 [ -d /etc/network/if-pre-up.d ] || mkdir -p /etc/network/if-pre-up.d
58 [ -d /etc/network/if-up.d ] || mkdir -p /etc/network/if-up.d
59 [ -d /etc/network/if-post-up.d ] || mkdir -p /etc/network/if-post-up.d
60
61 [ -d /etc/network/if-pre-down.d ] || mkdir -p /etc/network/if-pre-down.d
62 [ -d /etc/network/if-down.d ] || mkdir -p /etc/network/if-down.d
63 [ -d /etc/network/if-post-down.d ] || mkdir -p /etc/network/if-post-down.d
64
65
66 # Generic stuff done on all configurations
67 if [ -f /etc/network/interfaces ] ; then
68 # TODO: This should be handled with debconf and the script
69 # could introduce the line there directly
70 if ! grep -q "^[[:space:]]*iface[[:space:]]\+lo0\?[[:space:]]\+inet[[:space:]]\+loopback\>" /etc/network/interfaces ; then
71 report_warn "No 'iface lo' definition found in /etc/network/interfaces"
72 fi
73
74 if ! grep -q "^[[:space:]]*\(allow-\|\)auto[[:space:]]\+\(.*[[:space:]]\+\|\)lo0\?\([[:space:]]\+\|$\)" /etc/network/interfaces ; then
75 report_warn "No 'auto lo' statement found in /etc/network/interfaces"
76 fi
77 else # ! -f /etc/network/interfaces
78 if [ -z "$2" ]; then
79 echo "Creating /etc/network/interfaces."
80 echo "# interfaces(5) file used by ifup(8) and ifdown(8)" > /etc/network/interfaces
81 echo "auto lo" >> /etc/network/interfaces
82 echo "iface lo inet loopback" >> /etc/network/interfaces
83 else
84 report_warn "/etc/network/interfaces does not exist"
85 fi
86 fi
87
88 [ -e /sbin/ifup ] || ln -sf /sbin/ifupdown /sbin/ifup
89 [ -e /sbin/ifdown ] || ln -sf /sbin/ifupdown /sbin/ifdown
90 [ -e /sbin/ifquery ] || ln -sf /sbin/ifupdown /sbin/ifquery
91 [ -e /sbin/ifreload ] || ln -sf /sbin/ifupdown /sbin/ifreload
92
93 (cd /usr/share/man/man8/ && ln -sf /usr/share/man/man8/ifup.8.gz ifdown.8.gz)
94
95 mkdir -p /etc/network/interfaces.d/
96 process_udev
97 update-rc.d networking start 40 S . start 35 0 6 . >/dev/null
98 ;;
99
100 abort-upgrade|abort-remove|abort-deconfigure)
101 ;;
102
103 *)
104 echo "postinst called with unknown argument \`$1'" >&2
105 exit 1
106 ;;
107 esac
108
109 # dh_installdeb will replace this with shell code automatically
110 # generated by other debhelper scripts.
111
112 #DEBHELPER#
113
114 exit 0