forked from adamlaska/systemd
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_mkosi.sh
More file actions
executable file
·39 lines (32 loc) · 1.25 KB
/
run_mkosi.sh
File metadata and controls
executable file
·39 lines (32 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
# shellcheck disable=SC2064
set -eu
set -o pipefail
EC=0
TEMPFILE="$(mktemp)"
TEMP_EXTRA_TREE="$(mktemp --directory)"
trap "rm -rf '$TEMPFILE' '$TEMP_EXTRA_TREE'" EXIT
# We need isc-dhcp-server to be installed for the networkd unit tests, but we don't want to
# run it by default. mktemp creates the directory as 700, so change it, otherwise it will
# affect the image's root folder permissions.
chmod 755 "$TEMP_EXTRA_TREE"
mkdir -p "$TEMP_EXTRA_TREE/etc/systemd/system/"
ln -s /dev/null "$TEMP_EXTRA_TREE/etc/systemd/system/isc-dhcp-server.service"
ln -s /dev/null "$TEMP_EXTRA_TREE/etc/systemd/system/isc-dhcp-server6.service"
for ((i = 0; i < 5; i++)); do
EC=0
(sudo python3 -m mkosi --extra-tree="$TEMP_EXTRA_TREE" "$@") |& tee "$TEMPFILE" || EC=$?
if [[ $EC -eq 0 ]]; then
# The command passed — let's return immediately
break
fi
if ! grep -E "Failed to dissect image .+: Connection timed out" "$TEMPFILE"; then
# The command failed for other reason than the dissect-related timeout -
# let's exit with the same EC
exit $EC
fi
# The command failed due to the dissect-related timeout — let's try again
sleep 1
done
exit $EC