1 | #! /bin/sh |
---|
2 | # $Id: dhcp.sh,v 1.3 2001-01-16 18:37:27 zacheiss Exp $ |
---|
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 |
---|