blob: b5f6d5bccfe1d20c902d63e4c85ac285ef159587 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#!/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
env HTTP_TIMEOUT=5 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"
|