freebsd-ports/sysutils/firstboot-freebsd-update/files/firstboot_freebsd_update.in
Colin Percival 042e134f95 Teach the firstboot-freebsd-update script to disable itself if it is run
on something other than *-BETA*, *-RC*, or *-RELEASE*.  There won't be
any bits available to download, and if we don't disable it then the first
boot will be slowed down due to freebsd-update trying all of the available
mirrors.
2015-03-31 01:26:19 +00:00

54 lines
1.4 KiB
Bash

#!/bin/sh
# KEYWORD: firstboot
# PROVIDE: firstboot_freebsd_update
# REQUIRE: syslogd NETWORKING
# BEFORE: LOGIN
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf (in the disk
# image, since this only runs on the first boot) to enable this:
#
# firstboot_freebsd_update_enable="YES"
#
# By default this script will only run on *-BETA*, *-RC*, and *-RELEASE*
# systems, since those are the only ones for which updates are provided by
# the FreeBSD project; to run freebsd-update anyway (e.g., on a custom
# release for which you are providing your own update bits), set:
#
# firstboot_freebsd_update_nonstandard="YES"
. /etc/rc.subr
: ${firstboot_freebsd_update_enable:="NO"}
: ${firstboot_freebsd_update_nonstandard:="NO"}
name="firstboot_freebsd_update"
rcvar=firstboot_freebsd_update_enable
start_cmd="firstboot_freebsd_update_run | logger -s -t 'freebsd-update'"
stop_cmd=":"
firstboot_freebsd_update_run()
{
if ! checkyesno firstboot_freebsd_update_nonstandard; then
case "`uname -r`" in
*-BETA* | *-RC* | *-RELEASE*)
;;
*)
echo "Firstboot freebsd-update disabled on `uname -r`"
return 0
;;
esac
fi
freebsd-update fetch
if [ -e /var/db/freebsd-update/`echo / | sha256`-install ]; then
freebsd-update install
echo "Requesting reboot after installing updates."
touch ${firstboot_sentinel}-reboot
fi
}
load_rc_config $name
run_rc_command "$1"