diff options
| author | Simon J. Gerraty <sjg@FreeBSD.org> | 2025-10-30 18:09:13 +0000 |
|---|---|---|
| committer | Simon J. Gerraty <sjg@FreeBSD.org> | 2025-10-30 18:09:13 +0000 |
| commit | a797702be077c4671e3d437d6b9ffd37f2e86277 (patch) | |
| tree | ee025f40029ef8b50fce518295fe01ccb61dd085 | |
| parent | ee1f417a8609b8742332950521800502759dd185 (diff) | |
rc.subr set dot_dir and dot_file in dot
Files read by '.' cannot workout for themselves where they are
or what they are called, so set dot_dir and dot_file to pass
this information to them.
Reviewed by: obrien, stevek
Differential Revision: https://reviews.freebsd.org/D53476
| -rw-r--r-- | libexec/rc/rc.subr | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr index 8317ff5c0922..e4ad14f582d6 100644 --- a/libexec/rc/rc.subr +++ b/libexec/rc/rc.subr @@ -121,11 +121,22 @@ dotted= dot() { local f verify + local dot_dir dot_file o_verify_set off verify for f in "$@"; do if [ -f $f -a -s $f ]; then dotted="$dotted $f" + case $f in + */*) + dot_dir=${f%/*} + dot_file=${f##*/} + ;; + *) + dot_dir=. + dot_file=$f + ;; + esac . $f fi done @@ -152,8 +163,7 @@ vdot() for f in "$@"; do [ -f $f -a -s $f ] || continue if is_verified $f 2> /dev/null; then - dotted="$dotted $f" - . $f + dot $f else rc=80 # EAUTH fi |
