# 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"
}

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")
}