]> andersk Git - moira.git/blob - gen/dhcp.sh
c43efea865107bf1b55eb27138fde4abdb456fc3
[moira.git] / gen / dhcp.sh
1 #! /bin/sh
2 # $Id$
3
4 if [ -d /var/athena ] && [ -w /var/athena ]; then
5     exec >/var/athena/moira_update.log 2>&1
6 else
7     exec >/tmp/moira_update.log 2>&1
8 fi
9
10 # The following exit codes are defined and MUST BE CONSISTENT with the
11 # error codes the library uses:
12 MR_MISSINGFILE=47836473
13 MR_MKCRED=47836474
14 MR_TARERR=47836476
15
16 PATH=/usr/bin
17 TARFILE=/var/tmp/dhcp.out
18 BOOTGEN=/var/boot/dhcpd.conf.print
19 BOOTHEAD=/var/boot/dhcpd.conf.head
20 BOOTFOOT=/var/boot/dhcpd.conf.foot
21 BOOTFILE=/var/boot/dhcpd.conf
22 LEASEFILE=/var/boot/dhcpd.leases
23 PIDFILE=/var/boot/dhcpd.pid
24 BINFILE=/var/boot/dhcpd
25 PSWDFILE=/var/boot/hp.add
26
27 # Alert if the tar file or other needed files do not exist
28 test -r $TARFILE || exit $MR_MISSINGFILE
29 test -r $BOOTHEAD || exit $MR_MISSINGFILE
30 test -r $BOOTFOOT || exit $MR_MISSINGFILE
31 test -r $PSWDFILE || exit $MR_MISSINGFILE
32
33 cd /
34 tar xf $TARFILE || exit $MR_TARERR
35
36 # Append passwords, etc., to the new files
37 for f in `find /var/boot/hp -name \*.new -print`; do
38     cat $PSWDFILE >> $f
39     mv $f /var/boot/hp/`basename $f .new`
40 done
41
42 # Build full bootptab
43 cat $BOOTHEAD $BOOTGEN $BOOTFOOT > $BOOTFILE
44
45 # kill and rerun dhcpd
46 test -f $PIDFILE && kill `cat $PIDFILE`
47 test -x $BINFILE && $BINFILE -cf $BOOTFILE -lf $LEASEFILE -pf $PIDFILE 
48
49 # cleanup
50 test -f $TARFILE && rm -f $TARFILE
51 test -f $0 && rm -f $0
52
53 exit 0
This page took 0.23201 seconds and 3 git commands to generate.