tools/refresh-submodules.sh: don't exit, but wait if called in parallel.

Otherwise make thinks we're done, and we can get errors.  Include
primitive code if we abort build halfway and leave .refresh-submodules dir.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2020-08-31 10:52:54 +09:30
committed by neil saitug
parent 95a0249272
commit b3d5220da5

View File

@@ -9,8 +9,18 @@ fi
[ -d .git ] || exit 0
# git submodule can't run in parallel. Really.
# Wait for it to finish if in parallel.
if ! mkdir .refresh-submodules 2>/dev/null ; then
exit 0
# If we don't make progress in ~60 seconds, force delete and retry.
LIMIT=$((50 + $$ % 20))
i=0
while [ $i -lt $LIMIT ]; do
[ -d .refresh-submodules ] || exit 0
sleep 1
i=$((i + 1))
done
rmdir .refresh-submodules
exec "$0" "$@" || exit 1
fi
trap "rmdir .refresh-submodules" EXIT