#!/usr/bin/env bash #set -x PARAMS="" while (( "$#" )); do case "$1" in -u|--update) UPDATE=1 shift 1 ;; -s|--stack-name) STACK_NAME_ARG=$2 shift 2 ;; -t|--template) TEMPLATE_ARG=$2 shift 2 ;; -p|--profile) PROFILE_ARG=$2 shift 2 ;; -r|--region) REGION_ARG=$2 shift 2 ;; --) shift break ;; -*|--*=) echo "Error: Unsupported flag $1" >&2 exit 1 ;; *) PARAMS="$PARAMS $1" shift ;; esac done eval set -- "$PARAMS" if [ -z $UPDATE ]; then CMD='create-stack --enable-termination-protection' else CMD='update-stack' fi if [ -z ${STACK_NAME_ARG+x} ]; then echo 'You must supply -s|--stack-name' exit 1 else STACK_NAME=$STACK_NAME_ARG fi if [ -z ${TEMPLATE_ARG+x} ]; then TEMPLATE=vpn-gateway-strongswan.yml else TEMPLATE=$TEMPLATE_ARG fi if [ -z ${PROFILE_ARG+x} ]; then PROFILE= else PROFILE="--profile $PROFILE_ARG" fi if [ -z ${REGION_ARG+x} ]; then REGION= else REGION="--region $REGION_ARG" fi aws cloudformation ${CMD} \ --stack-name ${STACK_NAME} \ --template-body file://./${TEMPLATE} \ --parameters file://${1} \ --capabilities CAPABILITY_NAMED_IAM \ ${REGION} \ ${PROFILE} #aws cloudformation wait stack-create-complete --stack-name ${STACK_NAME} --region ${AWS_REGION} --profile ${AWS_PROFILE}