plan9fox/rc/bin/inst/ndbsetup
cinap_lenrek 03f364d167 inst/ndbsetup: allow setting sysname more than once
In the installation, if you run the ndbsetup task n times (n > 1),
the installed /lib/ndb/local will have n sys= entries.

The problem is that ndb(8) will use the first sys= entry found, but
one would expect that the last configuration in the ndbsetup task
would be the active one.

Remove any previous entry in ndbsetup before adding new one.
2013-06-01 16:14:53 +02:00

44 lines
844 B
Bash
Executable file

#!/bin/rc
# desc: setup network configuration
# prereq: confignet copydist
etheraddr=`{cat /net/ether0/addr >[2]/dev/null}
switch($1){
case checkready checkdone
if(~ $#etheraddr 1 && ~ $netisfrom ether && ~ $ethermethod dhcp manual && \
! grep -s $etheraddr /n/newfs/lib/ndb/local)
ndbsetup=ready
if not
ndbsetup=done
export ndbsetup
case go
echo
echo 'Setup network configuration'
echo
default=()
if(~ $#sysname 1)
default=(-d $sysname)
prompt $default 'sysname'
sysname=$rd
cp /n/newfs/lib/ndb/local /tmp/ndb.local
{
ssam 'x/^.*ether='^$etheraddr^'.*$/ d' /tmp/ndb.local
echo
switch($ethermethod){
case dhcp
echo 'sys='^$sysname 'ether='^$etheraddr
case manual
echo 'sys='^$sysname 'ether='^$etheraddr \
'ip='^$ipaddr 'ipmask='^$ipmask 'ipgw='^$gwaddr
}
echo
} >/n/newfs/lib/ndb/local
}