2022-05-25 14:02:09 +00:00
|
|
|
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
export LC_ALL=C.UTF-8
|
2022-11-16 12:59:38 +00:00
|
|
|
setsid --wait {{ CMD }} --mode=root --variant=apt --customize-hook='touch hookstarted && sleep 10 && touch fail' {{ DIST }} /tmp/debian-chroot {{ MIRROR }} &
|
2022-05-25 14:02:09 +00:00
|
|
|
pid=$!
|
2022-11-16 12:59:38 +00:00
|
|
|
while sleep 1; do [ -e hookstarted ] && break; done
|
|
|
|
rm hookstarted
|
|
|
|
# negative PID values choose the whole process group
|
2024-10-11 16:29:25 +00:00
|
|
|
pgid=$((-1 * $(ps -p "$pid" -o pgid=)))
|
2022-11-16 12:59:38 +00:00
|
|
|
/bin/kill --signal INT -- "$pgid"
|
2022-05-25 14:02:09 +00:00
|
|
|
ret=0
|
|
|
|
wait $pid || ret=$?
|
|
|
|
rm -r /tmp/debian-chroot
|
|
|
|
if [ -e fail ]; then
|
2024-10-11 16:29:25 +00:00
|
|
|
echo customize hook was not interrupted >&2
|
|
|
|
rm fail
|
|
|
|
exit 1
|
2022-05-25 14:02:09 +00:00
|
|
|
fi
|
|
|
|
if [ "$ret" = 0 ]; then
|
2024-10-11 16:29:25 +00:00
|
|
|
echo expected failure but got exit $ret >&2
|
|
|
|
exit 1
|
2022-05-25 14:02:09 +00:00
|
|
|
fi
|