29 lines
815 B
Bash
29 lines
815 B
Bash
# Tiny Cloud - Final Phase Functions
|
|
# vim:set ts=4 et ft=sh:
|
|
|
|
source /lib/tiny-cloud/init-common
|
|
|
|
save_userdata() {
|
|
skip_action save_userdata && return
|
|
|
|
imds -e @userdata > "$TINY_CLOUD_VAR/$CLOUD_USERDATA"
|
|
gunzip -t "$TINY_CLOUD_VAR/$CLOUD_USERDATA" && mv "$TINY_CLOUD_VAR/$CLOUD_USERDATA" "$TINY_CLOUD_VAR/$CLOUD_USERDATA".gz && gunzip -k "$TINY_CLOUD_VAR/$CLOUD_USERDATA".gz
|
|
}
|
|
|
|
is_userdata_script() {
|
|
head -n1 "$TINY_CLOUD_VAR/$CLOUD_USERDATA" | grep -q '#!/'
|
|
}
|
|
|
|
run_userdata() {
|
|
skip_action run_userdata && return
|
|
|
|
local log="$TINY_CLOUD_LOGS/$CLOUD_USERDATA.log"
|
|
local exit="$TINY_CLOUD_LOGS/$CLOUD_USERDATA.exit"
|
|
local userdata="$TINY_CLOUD_VAR/$CLOUD_USERDATA"
|
|
|
|
chmod +x "$userdata"
|
|
{ "$userdata" 2>& 1; echo $? > "$exit"; } | tee "$log"
|
|
|
|
return $(cat "$exit")
|
|
}
|