スタックの有無で wait するコマンドを切り替える。
#!/bin/bash
set -eu
STACK_NAME="foobar"
IS_UPDATE=0
set +e
aws cloudformation describe-stacks --stack-name ${STACK_NAME} > /dev/null 2>&1
if [ $? -eq 0 ]; then
IS_UPDATE=1
fi
set -e
aws cloudformation deploy --stack-name ${STACK_NAME} --template-file /path/to/template.yml
if [ $IS_UPDATE -eq 1 ]; then
aws cloudformation wait stack-update-complete --stack-name ${STACK_NAME}
else
aws cloudformation wait stack-create-complete --stack-name ${STACK_NAME}
fi
echo waited