1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-16 03:42:44 +03:00
tiny-cloud/etc/init.d/tiny-cloud-final
Jake Buchholz Göktürk 07f0e646e8 Introducing Tiny Cloud
2022-01-02 10:15:20 -08:00

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
}