rc: ignore .pkgsave files

The local parts of rc already skip .sample files; we add .pkgsave to the
list, and add logic for base.

Thanks to @RhodiumToad for getting this started.

Differential Revision: https://reviews.freebsd.org/D27962
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/662
This commit is contained in:
Mina Galić 2023-03-14 20:52:15 -06:00 committed by Warner Losh
parent 44357c18cc
commit 3693d9140e
2 changed files with 20 additions and 4 deletions

View File

@ -94,7 +94,9 @@ fi
# Do a first pass to get everything up to $early_late_divider so that
# we can do a second pass that includes $local_startup directories
#
files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* 2>/dev/null`
unset system_rc
find_system_scripts
files=`rcorder ${skip} ${skip_firstboot} ${system_rc} 2>/dev/null`
_rc_elem_done=' '
for _rc_elem in ${files}; do
@ -106,7 +108,7 @@ for _rc_elem in ${files}; do
esac
done
unset files local_rc
unset files local_rc system_rc
# Now that disks are mounted, for each dir in $local_startup
# search for init scripts that use the new rc.d semantics.
@ -122,7 +124,8 @@ if [ -e ${firstboot_sentinel} ]; then
skip_firstboot=""
fi
files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* ${local_rc} 2>/dev/null`
find_system_scripts
files=`rcorder ${skip} ${skip_firstboot} ${system_rc} ${local_rc} 2>/dev/null`
for _rc_elem in ${files}; do
case "$_rc_elem_done" in
*" $_rc_elem "*) continue ;;

View File

@ -2083,7 +2083,7 @@ find_local_scripts_new() {
if [ -d "${dir}" ]; then
for file in `grep -l '^# PROVIDE:' ${dir}/* 2>/dev/null`; do
case "$file" in
*.sample) ;;
*.sample|*.pkgsave) ;;
*) if [ -x "$file" ]; then
local_rc="${local_rc} ${file}"
fi
@ -2094,6 +2094,19 @@ find_local_scripts_new() {
done
}
find_system_scripts() {
system_rc=''
for file in /etc/rc.d/*; do
case "${file##*/}" in
*.pkgsave) ;;
*) if [ -x "$file" ]; then
system_rc="${system_rc} ${file}"
fi
;;
esac
done
}
# check_required_{before|after} command
# Check for things required by the command before and after its precmd,
# respectively. The two separate functions are needed because some