blob: 340ce6d740bbe5194958f08b09b9439f069eb88d (
plain)
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
|
#!/bin/sh
# KEYWORD: firstboot
# PROVIDE: firstboot_pkgs
# REQUIRE: 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_pkgs_enable="YES"
#
# and place a list of packages in firstboot_pkgs_list, e.g.,
#
# firstboot_pkgs_list="apache22 php5 mysql56-server"
. /etc/rc.subr
: ${firstboot_pkgs_enable:="NO"}
name="firstboot_pkgs"
rcvar=firstboot_pkgs_enable
start_cmd="firstboot_pkgs_run"
stop_cmd=":"
firstboot_pkgs_run()
{
# Count rc.d scripts
nscriptso=`ls /usr/local/etc/rc.d | wc -l`
# Bootstrap and update pkg to ensure synchronization with the repository
env ASSUME_ALWAYS_YES=YES pkg bootstrap -f | cat
env ASSUME_ALWAYS_YES=YES pkg update -f | cat
# Install requested packages, if any
for package in ${firstboot_pkgs_list}; do
env ASSUME_ALWAYS_YES=YES pkg install ${package} </dev/null |
cat
done
# Count rc.d scripts again
nscriptsn=`ls /usr/local/etc/rc.d | wc -l`
# If we have more scripts, request a reboot
if [ $nscriptsn -ne $nscriptso ]; then
echo "Requesting reboot after installing packages with rc.d scripts."
touch ${firstboot_sentinel}-reboot
fi
}
load_rc_config $name
run_rc_command "$1"
|