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