env=$1
stackName=$2
#update this variable to specify the name of your loval env
echo "**********************************************"
echo "* IOT Onboarding Code Pipeline project '$env' "
echo "***********************************************"
if [ -z "$env" ]
then
    echo "Environment Must not be Empty"
    echo "Usage:"
    echo "sh deploy.sh <env>"
    exit 1
else  
    echo "Checking pre-requisits'$env' "
    OUTRegion=$(aws configure get region)
    if [ -z "$OUTRegion" ]; then
        echo "The AWS CLI on this envitonement is not configured with a region."
        echo "Usage:"
        echo "aws configure set region <region-name> (ex: us-west-1)"
        exit 1
    fi
    echo "Deployment Actions for env: '$env' "
    echo "***********************************************"
    echo "1.0-Building stack for environement '$env' "
    npm run build
    #This section allows user to deploy only 1 stack or all stacks
        echo "1.1-Synthesizing CloudFormation template for environement '$env' "
        cdk synth -c envName=$env > iot-onboarding-$env.yml
        echo "1.2-Analyzing changes for environment '$env' "
        cdk diff -c envName=$env
        echo "1.3-Deploying infrastructure for environement '$env' "
        #TODO: parametterise the approval by environement
        #cdk deploy  -c envName=$env --format=json --require-approval never --parameters contactEmail="grollat@gmail.com" --parameters quickSightAdminUserName="admin/rollatgr-Isengard" --parameters sourceTemplateArn="arn:aws:quicksight:eu-central-1:660526416360:template/iotOnboardingRigadoQuicksightPublicTemplatedev" --parameters rootMqttTopic="data/#"
        rc=$?
    if [ $rc -ne 0 ]; then
      echo "CDK Deploy Failed! Existing Build with status $rc" >&2
      exit $rc
    fi
fi