This commit was manufactured by cvs2svn to create tag
[opensuse:installation-images.git] / data / initrd / s390 / check
1 #!/bin/sh
2 # IP_INTERFACE=ctc
3 # IP_ADDR=1.2.3.4
4 # IP_HOST=muell.schrott.de
5 # IP_GATEWAY=2.3.4.5
6 # IP_DNS=3.4.5.6
7 # IP_NETMASK=12.12.12.12
8 # IP_PEER=13.13.13.13
9 # DEVNO=600
10 # DEVNO2=500
11 # DEVNO3=4
12 # PORTNO=123
13 # PORTNAME=BLABLA
14 # INST_TYP=nfs
15 # INST_IP_ADDR=40.40.40.40
16 # INST_IP_DIR=/s390
17 # INST_SCREEN=X
18 # INST_X_ADDR=50.50.50.50
19 # INST_PASSWORD
20 # VNC_PASSWORD
21 #
22 #       Check the parameter for kompleetness
23 #
24 PARAM_VALID=yes
25 CONFIG_IS_OK=1
26 VALID_INTERFACES="c7000 c7000p ctc escon qeth lcs tr iucv hsi"
27 #
28 #       Test IP_ADDR, IP_HOST, IP_GATEWAY, IP_DNS
29 #
30 #
31 # checks numbers between 0 and 65535:
32 #
33 # example:
34 # if echo $NUMBER | check_number; then ...
35 #
36 function check_number()
37 {
38         IFS=". " read n1 n2 n3 n4 n5 rest
39         for i in n1 n2 n3 n4 n5 
40         do
41                 eval x=\$$i
42                 [ "$x" = "" ] && continue
43                 if [ "$x" -lt 0 -o "$x" -gt 65535 ]; then
44                         echo "$x: Value must be between 0 and 65535"
45                         return 1
46                 fi
47         done
48         return 0
49 }
50 #
51 # checks an IP to have numbers only between 0 and 255:
52 #
53 # example:
54 # if echo $IP_ADDR | check_ip; then ...
55 #
56 function check_ip()
57 {
58         IFS=". " read ip1 ip2 ip3 ip4 rest
59         for i in ip1 ip2 ip3 ip4
60         do
61                 eval x=\$$i
62                 [ "$x" = "" ] && return 1
63                 if [ "$x" -lt 0 -o "$x" -gt 255 ]; then
64                         echo "$x: Value must be between 0 and 255"
65                         return 1
66                 fi
67         done
68         return 0
69 }
70 #
71 #
72 #
73 case $IP_INTERFACE in
74         tr| eth| qeth| c7000| hsi)
75         [ -z "$IP_NETMASK" ] && CONFIG_IS_OK=0
76         echo $IP_NETMASK | check_ip
77         [ $? -eq 1 ] && CONFIG_IS_OK=0
78         ;;
79         ctc| escon| iucv)
80         [ -z "$IP_PEER" ] && CONFIG_IS_OK=0
81         echo $IP_PEER | check_ip
82         [ $? -eq 1 ] && CONFIG_IS_OK=0
83         ;;
84 esac
85 #
86 #       Test devno and the rest.
87 #
88 case $IP_INTERFACE in
89         ctc|escon)
90 #               check READ_DEVNO, WRITE_DEVNO
91         echo $READ_DEVNO $WRITE_DEVNO | check_number
92         [ $? -eq 1 ] && CONFIG_IS_OK=0
93         ;;
94         qeth)
95 #               check READ_DEVNO, DATA_DEVNO, PORTNAME
96         echo $READ_DEVNO $DATA_DEVNO | check_number
97         [ $? -eq 1 ] && CONFIG_IS_OK=0
98         [ `expr "$PORTNAME" : "[A-Z1-0]" ` ] && CONFIG_IS_OK=0
99         ;;
100         lcs|tr)
101 #               check DEVNO, PORTNO
102         echo $DEVNO $PORTNO | check_number
103         [ $? -eq 1 ] && CONFIG_IS_OK=0
104         ;;
105         hsi)
106 #               check READ_DEVNO, WRITE_DEVNO, DEVNO3
107         echo $READ_DEVNO $WRITE_DEVNO $DEVNO3 | check_number
108         [ $? -eq 1 ] && CONFIG_IS_OK=0
109         ;;
110         iucv)
111 #               check PEER
112         echo $PEER | check_ip
113         [ $? -eq 1 ] && CONFIG_IS_OK=0
114         ;;
115 esac
116 #
117 #       Test Installparameters (nfs, Samba, ftp,http)
118 #
119 case $INST_TYP in
120         nfs|samba|ftp|http)
121         echo $INST_IP_ADDR | check_ip
122         [ $? -eq 1 ] && CONFIG_IS_OK=0
123         [ -z "$INST_IP_DIR" ] && CONFIG_IS_OK=0
124         ;;
125         *)
126         CONFIG_IS_OK=0
127         ;;
128 esac
129 #
130 [ "$INST_SCREEN" = "X" ] && {
131 echo "$INST_X_ADDR" | check_ip
132 [ $? -eq 1 ] && CONFIG_IS_OK=0
133 }
134 #
135 #
136 echo $CONFIG_IS_OK