mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-16 03:42:44 +03:00
37 lines
752 B
Bash
37 lines
752 B
Bash
#!/sbin/openrc-run
|
|
# vim:set ft=sh noet ts=4:
|
|
|
|
description="Tiny Cloud Bootstrap - final phase"
|
|
|
|
depend() {
|
|
after *
|
|
provide cloud-final
|
|
}
|
|
|
|
_save_userdata() {
|
|
imds_userdata > "$USERDATA"
|
|
}
|
|
|
|
_run_userdata() {
|
|
local log="/var/log/user-data.log"
|
|
local exit="/var/log/user-data.exit"
|
|
|
|
chmod +x "$USERDATA"
|
|
{ "$USERDATA" 2>& 1; echo $? > "$exit"; } | tee "$log"
|
|
|
|
return $(cat "$exit")
|
|
}
|
|
|
|
start() {
|
|
[ -f "/var/lib/cloud/.bootstrap-complete" ] && return 0
|
|
[ -d "/var/lib/cloud" ] || mkdir -p /var/lib/cloud
|
|
|
|
source /lib/tiny-cloud/imds
|
|
|
|
USERDATA="/var/lib/cloud/user-data"
|
|
|
|
ebegin "Saving Instance UserData"; _save_userdata; eend $?
|
|
if head -n1 "$USERDATA" | grep -q '^#!/'; then
|
|
ebegin "Executing UserData Script"; _run_userdata; eend $?
|
|
fi
|
|
} |