Some of the examples in the rc script points to older versions of ports which are no longer in the tree. There is no change in the dunctionality of the ports. This is just a cosmetic change. Approved by: cperciva (slack)
54 lines
1.2 KiB
Bash
54 lines
1.2 KiB
Bash
#!/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="apache24 php83 mysql80-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"
|