From 5b261cff2d87fd9749750a23ad022af8eb35d330 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Mon, 15 May 2023 10:35:12 +0200 Subject: [PATCH] dagger: Add pre and post hooks for actions The special directories @pre and @post will always have their scripts ran before and after, respectively, the rest of the DAG. --- board/common/rootfs/sbin/dagger | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/board/common/rootfs/sbin/dagger b/board/common/rootfs/sbin/dagger index 548c76f0..cce3e09a 100755 --- a/board/common/rootfs/sbin/dagger +++ b/board/common/rootfs/sbin/dagger @@ -33,17 +33,22 @@ generate_order() action_exec() { local actdir="$2/action/$1" - local order="$actdir/order" + local orderfile="$actdir/order" local code=0 generate_order "$2" - if [ ! -r "$order" ]; then - order="$2/bottom-up-order" + if [ ! -r "$orderfile" ]; then + orderfile="$2/bottom-up-order" inform warn "No order defined for $actdir, falling back to bottom-up" fi - for node in $(cat "$order"); do + local order=$(cat "$orderfile") + + [ -d "$actdir/@pre" ] && order="@pre $order" + [ -d "$actdir/@post" ] && order="$order @post" + + for node in $order; do for work in $(find "$actdir/$node" -type f -executable 2>/dev/null | sort); do $work >>"$work.log" 2>&1 || code=$? echo "[exit:$code]" >>"$work.log"