#!/bin/bash # Load environment variables from .env file if it exists if [ -f .env ]; then export $(cat .env | xargs) fi # Check if required environment variables are set if [ -z "$FREEDNS_User" ] || [ -z "$FREEDNS_Password" ] || [ -z "$DOMAIN_NAME" ]; then echo "Error: FREEDNS_User, FREEDNS_Password, and DOMAIN_NAME must be set as environment variables or in a .env file." exit 1 fi # Deploy infrastructure cdk deploy --app="python3 ${PWD}/app.py" # Update application on running instances INSTANCE_IDS=$(aws ec2 describe-instances \ --filters "Name=tag:Name,Values=IptvUpdater/IptvUpdaterInstance" \ "Name=instance-state-name,Values=running" \ --query "Reservations[].Instances[].InstanceId" \ --output text) for INSTANCE_ID in $INSTANCE_IDS; do echo "Updating application on instance: $INSTANCE_ID" aws ssm send-command \ --instance-ids "$INSTANCE_ID" \ --document-name "AWS-RunShellScript" \ --parameters '{"commands":["cd /home/ec2-user/iptv-updater-aws && git pull && pip3 install -r requirements.txt && sudo systemctl restart iptv-updater"]}' \ --no-cli-pager \ --no-paginate done echo "Deployment and instance update complete"