freebsd-ports/sysutils/firstboot-freebsd-update/files/firstboot_freebsd_update.in
Colin Percival 7d65d24dfd sysutils/firstboot-freebsd-update: Add --not-running-from-cron
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
2021-06-24 13:37:34 -07: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 --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"