Fallback hostname to localhost.
[bacula-cn.git] / debian / config
1 #! /bin/sh 
2 set -e
3
4 . /usr/share/debconf/confmodule
5
6 # Guess default hostname
7 HOST=$( hostname -f || true )
8 if [ -z "$HOST" ]; then
9     HOST=localhost
10 fi
11
12 db_get bacula-cn/hostname || true
13 if [ -z "$RET" ]; then
14     db_set bacula-cn/hostname "$HOST"
15 fi
16
17 # Guess default ip
18 db_get bacula-cn/ip || true
19 if [ -z "$RET" ]; then
20     # default via 161.53.55.1 dev eth0
21     DEV=$( ip route show to exact 0/0 \
22            | awk '$1 == "default" && $4 == "dev" { print $5; nextfile }' )
23     if [ "$DEV" ]; then
24         # inet 161.53.55.202/24 brd 161.53.55.255 scope global eth0
25         IP=$( ip address show dev $DEV scope global \
26               | awk '$1 == "inet" { sub("/[^ ]+", ""); print $2; nextfile }' )
27         if [ "$IP" ]; then
28             db_set bacula-cn/ip "$IP"
29         fi
30     fi
31 fi
32
33 # Sample contact
34 db_get bacula-cn/contact || true
35 if [ -z "$RET" ]; then
36     db_set bacula-cn/contact "Ime Prezime <korisnik@$HOST>"
37 fi
38
39 # Check hostname
40 while true; do
41     ! db_input high bacula-cn/hostname && [ $? -eq 30 ] && break
42     db_go || true
43
44     db_get bacula-cn/hostname
45     [ -z "$RET" ] && continue
46     echo "$RET" | grep -Eqi '^[a-z0-9-]+(\.[a-z0-9.-]+)+$' || continue
47
48     break
49 done
50
51 # Check ip
52 while true; do
53     ! db_input high bacula-cn/ip && [ $? -eq 30 ] && break
54     db_go || true
55
56     db_get bacula-cn/ip
57     [ -z "$RET" ] && continue
58     echo "$RET" | grep -Eqi '^[0-9]{1,3}(\.[0-9]{1,3}){3}$' || continue
59
60     break
61 done
62
63 # Check contact
64 while true; do
65     ! db_input high bacula-cn/contact && [ $? -eq 30 ] && break
66     db_go || true
67
68     db_get bacula-cn/contact
69     [ -z "$RET" ] && continue
70     echo "$RET" | grep -Eqi '^([^@]*<)?[a-z0-9.+-]+@[a-z0-9-]+(\.[a-z0-9.-]+)+>?$' || continue
71
72     break
73 done
74
75 exit 0