[make-initrd] [PATCH v1 34/41] fork pipeline: bootchain-loop: cleanup, testing and debugging

Leonid Krivoshein klark.devel at gmail.com
Fri Sep 24 18:59:04 MSK 2021


---
  .../bootchain-core/data/sbin/bootchain-loop   | 36 +++++++++++++++++++
  1 file changed, 36 insertions(+)

diff --git 
a/make-initrd/features/bootchain-core/data/sbin/bootchain-loop 
b/make-initrd/features/bootchain-core/data/sbin/bootchain-loop
index 70a5bf6..7474ebb 100755
--- a/make-initrd/features/bootchain-core/data/sbin/bootchain-loop
+++ b/make-initrd/features/bootchain-core/data/sbin/bootchain-loop
@@ -94,3 +94,39 @@ elif [ "$rc" = 0 ] && [ -f "$BC_PASSED/$PROG" ]; then
  else
  	fatal "daemon terminated incorrectly (rc=$rc)"
  fi
+
+if [ -z "$BC_DEBUG" ]; then
+	grep -qs " $mntdir/" /proc/mounts ||
+		run umount -- "$mntdir" &&
+		run rm -rf -- "$mntdir" ||:
+else
+	prevdir="$(readlink-e "$destdir" 2>/dev/null ||:)"
+	[ "$prevdir" = "$rootmnt" ] && datadir="" ||
+		datadir="$rootmnt"
+	destdir=
+	callnum=0
+	name=STAGE2
+
+	message "[$callnum] Handler: $handlerdir/debug"
+
+	export name callnum datadir destdir prevdir
+
+	run "$handlerdir/debug" ||:
+	debug "last step finished with exit code $rc"
+fi
+
+if [ -f "$BC_LOGFILE" ] && [ -n "${BC_DEBUG}${BC_TEST-}" ]; then
+	if [ -d "$rootmnt/var/log" ]; then
+		destdir="$rootmnt/var/log"
+	else
+		run mkdir -p -- "$mntdir"
+		destdir="$mntdir"
+	fi
+
+	if [ -n "${BC_TEST-}" ]; then
+		debug "test '$BC_TEST' in the stage1 passed"
+		echo "$BC_TEST" >"$destdir"/BC-TEST.passed
+	fi
+
+	run cp -Lf -- "$BC_LOGFILE" "$destdir/"
+fi
-- 
2.21.0




More information about the Make-initrd mailing list