base-files: split out preinit interface config
[openwrt/openwrt.git] / package / base-files / files / lib / preinit / 10_indicate_preinit
1 #!/bin/sh
2 # Copyright (C) 2006 OpenWrt.org
3 # Copyright (C) 2010 Vertical Communications
4
5 preinit_ip_config() {
6 grep -q "$1" /proc/net/dev || return
7
8 ip link set dev $1 up
9 ip -4 address add $pi_ip/$pi_netmask broadcast $pi_broadcast dev $1
10 }
11
12 preinit_ip() {
13 # if the preinit interface isn't specified and ifname is set in
14 # preinit.arch use that interface
15 if [ -z "$pi_ifname" ]; then
16 pi_ifname=$ifname
17 fi
18
19 if [ -n "$pi_ifname" ]; then
20 preinit_ip_config $pi_ifname
21 fi
22 }
23
24 preinit_ip_deconfig() {
25 [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
26 ip -4 address flush dev $pi_ifname
27 ip link set dev $pi_ifname down
28 }
29 }
30
31 preinit_net_echo() {
32 [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
33 {
34 [ "$pi_preinit_net_messages" = "y" ] || {
35 [ "$pi_failsafe_net_message" = "true" ] &&
36 [ "$pi_preinit_no_failsafe_netmsg" != "y" ]
37 }
38 } && netmsg $pi_broadcast "$1"
39 }
40 }
41
42 preinit_echo() {
43 preinit_net_echo $1
44 echo $1
45 }
46
47 pi_indicate_preinit() {
48 preinit_net_echo "Doing Lede Preinit\n"
49 set_state preinit
50 }
51
52 boot_hook_add preinit_main preinit_ip
53 boot_hook_add preinit_main pi_indicate_preinit