diff options
| author | Jose Luis Duran <jlduran@FreeBSD.org> | 2026-01-24 08:58:05 +0000 |
|---|---|---|
| committer | Jose Luis Duran <jlduran@FreeBSD.org> | 2026-01-25 10:59:27 +0000 |
| commit | 4f093770b5d55e176786db27d6f99639ae42a40e (patch) | |
| tree | e54f111e6c8550941cdeec8d814d000062b6a5ad | |
| parent | da59b3147b01203bb18bcd03cce7a6d5916e87c3 (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-x | tools/tools/nanobsd/defaults.sh | 9 |
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" |
