Skip to content

Commit e0829e7

Browse files
committed
cidata: split boot.sh
Signed-off-by: Akihiro Suda <[email protected]>
1 parent efd8d86 commit e0829e7

File tree

3 files changed

+50
-30
lines changed

3 files changed

+50
-30
lines changed

docs/internal.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ The directory contains the following files:
6767
- `lima.env`: the environment variables
6868
- `lima-guestagent`: Lima guest agent binary
6969
- `nerdctl-full.tgz`: [`nerdctl-full-<VERSION>-linux-<ARCH>.tar.gz`](https://github.com/containerd/nerdctl/releases)
70-
- `boot/*`: Boot scripts
70+
- `boot.sh`: Boot script
71+
- `boot/*`: Boot script modules
7172
- `provision.system/*`: Custom provision scripts (system)
7273
- `provision.user/*`: Custom provision scripts (user)
7374

pkg/cidata/cidata.TEMPLATE.d/boot.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/bin/sh
2+
set -eu
3+
4+
INFO(){
5+
echo "LIMA| $*"
6+
}
7+
8+
WARNING(){
9+
echo "LIMA| WARNING: $*"
10+
}
11+
12+
# shellcheck disable=SC2163
13+
while read -r line; do export "$line"; done <"${LIMA_CIDATA_MNT}"/lima.env
14+
15+
CODE=0
16+
17+
for f in "${LIMA_CIDATA_MNT}"/boot/*; do
18+
INFO "Executing $f"
19+
if ! "$f"; then
20+
WARNING "Failed to execute $f"
21+
CODE=1
22+
fi
23+
done
24+
25+
if [ -d "${LIMA_CIDATA_MNT}"/provision.system ]; then
26+
for f in "${LIMA_CIDATA_MNT}"/provision.system/*; do
27+
INFO "Executing $f"
28+
if ! "$f"; then
29+
WARNING "Failed to execute $f"
30+
CODE=1
31+
fi
32+
done
33+
fi
34+
35+
if [ -d "${LIMA_CIDATA_MNT}"/provision.user ]; then
36+
until [ -e "/run/user/${LIMA_CIDATA_UID}}/systemd/private" ]; do sleep 3; done
37+
for f in "${LIMA_CIDATA_MNT}"/provision.user/*; do
38+
INFO "Executing $f (as user ${LIMA_CIDATA_USER})"
39+
if ! sudo -iu "${LIMA_CIDATA_USER}" "XDG_RUNTIME_DIR=/run/user/${LIMA_CIDATA_UID}" "$f"; then
40+
WARNING "Failed to execute $f (as user ${LIMA_CIDATA_USER})"
41+
CODE=1
42+
fi
43+
done
44+
fi
45+
46+
INFO "Exiting with code $CODE"
47+
exit "$CODE"

pkg/cidata/cidata.TEMPLATE.d/user-data

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,35 +26,7 @@ write_files:
2626
mkdir -p -m 700 "${LIMA_CIDATA_MNT}"
2727
mount -o ro,mode=0700,dmode=0700,overriderockperm,exec,uid=0 "${LIMA_CIDATA_DEV}" "${LIMA_CIDATA_MNT}"
2828
export LIMA_CIDATA_MNT
29-
while read line ; do export "$line"; done <"${LIMA_CIDATA_MNT}"/lima.env
30-
CODE=0
31-
for f in "${LIMA_CIDATA_MNT}"/boot/*; do
32-
echo "Executing $f"
33-
if ! "$f"; then
34-
echo "Failed to execute $f"
35-
CODE=1
36-
fi
37-
done
38-
if [ -d "${LIMA_CIDATA_MNT}"/provision.system ]; then
39-
for f in "${LIMA_CIDATA_MNT}"/provision.system/*; do
40-
echo "Executing $f"
41-
if ! "$f"; then
42-
echo "Failed to execute $f"
43-
CODE=1
44-
fi
45-
done
46-
fi
47-
if [ -d "${LIMA_CIDATA_MNT}"/provision.user ]; then
48-
until [ -e "/run/user/${LIMA_CIDATA_UID}}/systemd/private" ]; do sleep 3; done
49-
for f in "${LIMA_CIDATA_MNT}"/provision.user/*; do
50-
echo "Executing $f (as user ${LIMA_CIDATA_USER})"
51-
if ! sudo -iu "${LIMA_CIDATA_USER}" "XDG_RUNTIME_DIR=/run/user/${LIMA_CIDATA_UID}" "$f"; then
52-
echo "Failed to execute $f (as user ${LIMA_CIDATA_USER})"
53-
CODE=1
54-
fi
55-
done
56-
fi
57-
exit "$CODE"
29+
exec "${LIMA_CIDATA_MNT}"/boot.sh
5830
owner: root:root
5931
path: /var/lib/cloud/scripts/per-boot/00-lima.boot.sh
6032
permissions: '0755'

0 commit comments

Comments
 (0)