diff --git a/sbin/reboot/Makefile b/sbin/reboot/Makefile index 2a0e4ac573ee..c70a3f2550e7 100644 --- a/sbin/reboot/Makefile +++ b/sbin/reboot/Makefile @@ -1,17 +1,19 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 # $FreeBSD$ PROG= reboot DPADD= ${LIBUTIL} LDADD= -lutil MAN= reboot.8 boot_i386.8 MLINKS= reboot.8 halt.8 reboot.8 fastboot.8 reboot.8 fasthalt.8 .if exists(${.CURDIR}/boot_${MACHINE}.8) MLINKS+= boot_${MACHINE}.8 boot.8 .endif LINKS= ${BINDIR}/reboot ${BINDIR}/halt ${BINDIR}/reboot ${BINDIR}/fastboot \ ${BINDIR}/reboot ${BINDIR}/fasthalt +SCRIPTS= nextboot.sh + .include diff --git a/sbin/reboot/nextboot.sh b/sbin/reboot/nextboot.sh new file mode 100644 index 000000000000..56e53f60a1a9 --- /dev/null +++ b/sbin/reboot/nextboot.sh @@ -0,0 +1,57 @@ +#! /bin/sh +# +# Copyright 2002. Gordon Tetlow. +# gordon@FreeBSD.org +# +# $FreeBSD$ + +delete="NO" +force="NO" +nextboot_file="/boot/nextboot.conf" + +display_usage() { + echo "Usage: nextboot [-f] [-o options] -k kernel" + echo " nextboot -D" +} + +while getopts "Dfk:o:" argument ; do + case "${argument}" in + D) + delete="YES" + ;; + f) + force="YES" + ;; + k) + kernel="${OPTARG}" + ;; + o) + kernel_options="${OPTARG}" + ;; + *) + display_usage + exit 1 + ;; + esac +done + +if [ ${delete} = "YES" ]; then + rm -f ${nextboot_file} + exit 0 +fi + +if [ "xxx${kernel}" = "xxx" ]; then + display_usage + exit 1 +fi + +if [ ${force} = "NO" -a ! -d /boot/${kernel} ]; then + echo "Error: /boot/${kernel} doesn't exist. Use -f to override." + exit 1 +fi + +cat > ${nextboot_file} << EOF +nextboot_enable="YES" +kernel="${kernel}" +kernel_options="${kernel_options}" +EOF