git: 4f093770b5d5 - main - nanobsd: Fix _populate_part()

From: Jose Luis Duran <jlduran_at_FreeBSD.org>
Date: Sun, 25 Jan 2026 10:59:48 UTC
The branch main has been updated by jlduran:

URL: https://cgit.FreeBSD.org/src/commit/?id=4f093770b5d55e176786db27d6f99639ae42a40e

commit 4f093770b5d55e176786db27d6f99639ae42a40e
Author:     Jose Luis Duran <jlduran@FreeBSD.org>
AuthorDate: 2026-01-24 08:58:05 +0000
Commit:     Jose Luis Duran <jlduran@FreeBSD.org>
CommitDate: 2026-01-25 10:59:27 +0000

    nanobsd: Fix _populate_part()
    
    - Avoid unnecessary subshell execution
    - Fix removing the temporary and empty /cfg directory
    - Do not remove the generated metalog file for /cfg or /data partitions
    
    Fixes:          61ac7309c366 ("nanobsd: Add a provisional populate_part function")
    MFC after:      3 days
---
 tools/tools/nanobsd/defaults.sh | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tools/tools/nanobsd/defaults.sh b/tools/tools/nanobsd/defaults.sh
index 31f3df9a3086..0e5af1e3e95a 100755
--- a/tools/tools/nanobsd/defaults.sh
+++ b/tools/tools/nanobsd/defaults.sh
@@ -745,7 +745,7 @@ populate_slice() {
 	nano_umount ${mnt}
 }
 
-_populate_part() (
+_populate_part() {
 	local dir fs lbl metalog size type
 	type=$1
 	fs=$2
@@ -762,7 +762,7 @@ _populate_part() (
 	else
 		if [ "${type}" = "cfg" ]; then
 			dir=$(mktemp -d -p "${NANO_OBJ}" -t "${type}")
-			trap "rm -f ${dir}" 1 2 15 EXIT
+			trap "rm -rf ${dir}" 1 2 15 EXIT
 		fi
 	fi
 
@@ -770,8 +770,7 @@ _populate_part() (
 		# If there is no metalog, create one using the default
 		# NANO_DEF_UNAME and NANO_DEF_GNAME for all entries in the spec.
 		if [ -z "${metalog}" ]; then
-			metalog=$(mktemp -p "${NANO_OBJ}" -t "${type}")
-			trap "rm -f ${metalog}" 1 2 15 EXIT
+			metalog="${NANO_METALOG}.${type}"
 			echo "/set type=dir uname=${NANO_DEF_UNAME}" \
 			    "gname=${NANO_DEF_GNAME} mode=0755" > "${metalog}"
 			echo ". type=dir uname=${NANO_DEF_UNAME}" \
@@ -787,7 +786,7 @@ _populate_part() (
 
 		nano_makefs "-DxZ ${NANO_MAKEFS}" "${metalog}" "${size}" "${fs}" "${dir}"
 	fi
-)
+}
 
 populate_cfg_slice() {
 	populate_slice "$1" "$2" "$3" "$4"