refactor(doorbell-touch): extract lockfile logic to shared script

This commit is contained in:
2026-02-18 02:18:50 -08:00
parent 2831ecf43c
commit 4ea7165148
2 changed files with 75 additions and 36 deletions

View File

@@ -28,17 +28,8 @@ arduino-cli compile --fqbn "$FQBN" --libraries ./libraries $LIBS --build-propert
description = "Upload (uses BOARD env var)"
run = """
source ./boards/$BOARD/board-config.sh
LOCKFILE="/tmp/doorbell-$BOARD.lock"
if [ -f "$LOCKFILE" ]; then
echo "Error: Another instance is running (lockfile exists: $LOCKFILE)"
echo "Remove with: rm $LOCKFILE"
exit 1
fi
trap 'rm -f "$LOCKFILE"' EXIT
touch "$LOCKFILE"
echo "Acquired lock: $LOCKFILE"
source ./scripts/lockfile.sh
FORCE=1 TASK_NAME=upload acquire_lock || exit 1
PORT="${PORT:-$PORT}"
arduino-cli compile --fqbn "$FQBN" --libraries ./libraries $LIBS --build-property "compiler.cpp.extra_flags=$OPTS" --warnings default ./boards/$BOARD && \
@@ -49,17 +40,8 @@ arduino-cli upload --fqbn "$FQBN" --port "$PORT" ./boards/$BOARD
description = "Monitor (uses BOARD env var)"
run = """
source ./boards/$BOARD/board-config.sh
LOCKFILE="/tmp/doorbell-$BOARD.lock"
if [ -f "$LOCKFILE" ]; then
echo "Error: Another instance is running (lockfile exists: $LOCKFILE)"
echo "Remove with: rm $LOCKFILE"
exit 1
fi
trap 'rm -f "$LOCKFILE"' EXIT
touch "$LOCKFILE"
echo "Acquired lock: $LOCKFILE (Ctrl+C to release)"
source ./scripts/lockfile.sh
acquire_lock || exit 1
PORT="${PORT:-$PORT}"
TARGET="$(readlink -f "$PORT" 2>/dev/null || echo "$PORT")"
@@ -70,27 +52,19 @@ arduino-cli monitor -p "$TARGET" --config baudrate=115200
description = "Show tio command to run in separate terminal"
run = """
source ./boards/$BOARD/board-config.sh
LOCKFILE="/tmp/doorbell-$BOARD.lock"
if [ -f "$LOCKFILE" ]; then
echo "Error: Another instance is running (lockfile exists: $LOCKFILE)"
echo "Remove with: rm $LOCKFILE"
exit 1
fi
trap 'rm -f "$LOCKFILE"' EXIT
touch "$LOCKFILE"
echo "Acquired lock: $LOCKFILE (Ctrl+C to release)"
source ./scripts/lockfile.sh
acquire_lock || exit 1
PORT="${PORT:-$PORT}"
TARGET="$(readlink -f "$PORT" 2>/dev/null || echo "$PORT")"
tio --map INLCRNL "$TARGET" -e
"""
[tasks.monitor-screen-kill]
description = "Kill tio (Ctrl+C in the terminal)"
[tasks.kill]
description = "Kill running monitor/upload for BOARD"
run = """
echo "Press Ctrl+C in the tio terminal to exit"
source ./scripts/lockfile.sh
kill_locked
"""
[tasks.install-libs-shared]