aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Luis Duran <jlduran@FreeBSD.org>2026-01-24 08:58:05 +0000
committerJose Luis Duran <jlduran@FreeBSD.org>2026-01-25 10:59:27 +0000
commit4f093770b5d55e176786db27d6f99639ae42a40e (patch)
treee54f111e6c8550941cdeec8d814d000062b6a5ad
parentda59b3147b01203bb18bcd03cce7a6d5916e87c3 (diff)
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
-rwxr-xr-xtools/tools/nanobsd/defaults.sh9
1 files 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"