7d65d24dfd
On systems without a working console, running freebsd-update fetch from an rc script triggers the "should not be run non-interactively" error. Solve this by telling freebsd-update to skip that check. Reported by: Mike Bristow
54 lines
1.4 KiB
Bash
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 --not-running-from-cron 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"
|
|
|