From 7838c22ea61ba5cd720c55fe835470a4ddeaecd6 Mon Sep 17 00:00:00 2001 From: Tomas Volf Date: Mon, 18 May 2020 11:07:47 +0200 Subject: Report exit code from user-data instead of from tee --- tiny-ec2-bootstrap | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tiny-ec2-bootstrap b/tiny-ec2-bootstrap index e8c44ab..944446d 100644 --- a/tiny-ec2-bootstrap +++ b/tiny-ec2-bootstrap @@ -54,12 +54,19 @@ _set_ssh_keys() { } _run_userdata() { - user_data=$(_get_metadata user-data) - if echo "$user_data" | grep -q '^#!/'; then - echo "$user_data" > /var/lib/cloud/user-data.sh + local user_data="$(_get_metadata user-data)" + if printf '%s' "$user_data" | head -n1 | grep -q '^#!/'; then + printf '%s' "$user_data" >/var/lib/cloud/user-data.sh chmod +x /var/lib/cloud/user-data.sh - /var/lib/cloud/user-data.sh 2>&1 | tee /var/log/cloud-bootstrap.log - echo "User Data Script Exit Status: $?" + + local log_file=/var/log/cloud-bootstrap.log + local ec_file=/var/log/cloud-bootstrap.exit + + { /var/lib/cloud/user-data.sh 2>&1 ; echo $? >"$ec_file"; } | tee "$log_file" + ec=$(cat "$ec_file") + + echo "User Data Script Exit Status: $ec" + return $ec fi } -- cgit v1.2.3