nextboot.sh revision 154431
1#! /bin/sh
2#
3# Copyright 2002. Gordon Tetlow.
4# gordon@FreeBSD.org
5#
6# $FreeBSD: head/sbin/reboot/nextboot.sh 154431 2006-01-16 16:18:54Z wes $
7
8delete="NO"
9force="NO"
10nextboot_file="/boot/nextboot.conf"
11kernel=""
12
13display_usage() {
14	echo "Usage: nextboot [-f] [-o options] -k kernel"
15	echo "       nextboot -D"
16}
17
18# Parse args, do not use getopt because we don't want to rely on /usr
19while test $# -gt 0; do
20	case $1 in
21	-D)
22		delete="YES"
23		;;
24	-f)
25		force="YES"
26		;;
27	-k)
28		if test $# -lt 2; then
29			echo "$0: option $1 must specify kernel"
30			display_usage
31			exit 1
32		fi
33		kernel="$2"
34		shift
35		;;
36	-o)
37		if test $# -lt 2; then
38			echo "$0: option $1 must specify boot options"
39			display_usage
40			exit 1
41		fi
42		kernel_options="$2"
43		shift
44		;;
45	*)
46		display_usage
47		exit 1
48		;;
49	esac
50	shift
51done
52
53if [ ${delete} = "YES" ]; then
54	rm -f ${nextboot_file}
55	exit 0
56fi
57
58if [ "xxx${kernel}" = "xxx" ]; then
59	display_usage
60	exit 1
61fi
62
63if [ ${force} = "NO" -a ! -d /boot/${kernel} ]; then
64	echo "Error: /boot/${kernel} doesn't exist. Use -f to override."
65	exit 1
66fi
67
68cat > ${nextboot_file} << EOF
69nextboot_enable="YES"
70kernel="${kernel}"
71kernel_options="${kernel_options}"
72EOF
73