#!/bin/bash # Default-Werte EMAIL="" OOO=false FORWARD=false # Argumente parsen while [[ $# -gt 0 ]]; do case $1 in --ooo) OOO=true shift ;; --forward) FORWARD=true shift ;; *) EMAIL=$1 shift ;; esac done if [ -z "$EMAIL" ]; then echo "Usage: $0 [--ooo] [--forward] email@domain.com" echo " --ooo: Nur OOO deaktivieren/löschen" echo " --forward: Nur Forwards leeren" echo " Kein Flag: Gesamte Regel löschen" exit 1 fi # Wenn Flags gesetzt: Update statt Delete if [ "$OOO" = true ] || [ "$FORWARD" = true ]; then # Update-Ausdruck bauen SET_EXPR="" REMOVE_EXPR="" ATTR_VALUES_JSON='{}' if [ "$OOO" = true ]; then SET_EXPR="$SET_EXPR ooo_active = :false" REMOVE_EXPR="$REMOVE_EXPR ooo_message, ooo_content_type" ATTR_VALUES_JSON=$(echo "$ATTR_VALUES_JSON" | jq '. + {":false": {"BOOL": false}}') fi if [ "$FORWARD" = true ]; then if [ -n "$SET_EXPR" ]; then SET_EXPR="$SET_EXPR," fi SET_EXPR="$SET_EXPR forwards = :empty_list" ATTR_VALUES_JSON=$(echo "$ATTR_VALUES_JSON" | jq '. + {":empty_list": {"L": []}}') fi # Update-Expression zusammenbauen UPDATE_EXPR="" if [ -n "$SET_EXPR" ]; then UPDATE_EXPR="SET $SET_EXPR" fi if [ -n "$REMOVE_EXPR" ]; then if [ -n "$UPDATE_EXPR" ]; then UPDATE_EXPR="$UPDATE_EXPR " fi UPDATE_EXPR="$UPDATE_EXPR REMOVE ${REMOVE_EXPR#,}" # Entferne führendes Komma in REMOVE fi # Update-Item ausführen (nur wenn Regel existiert) aws dynamodb update-item \ --table-name email-rules \ --key '{"email_address": {"S": "'"$EMAIL"'"}}' \ --update-expression "$UPDATE_EXPR" \ --expression-attribute-values "$ATTR_VALUES_JSON" \ --region us-east-2 \ --condition-expression "attribute_exists(email_address)" # Vermeide Fehler, wenn nicht existent echo "✓ Teile der Regel für $EMAIL aktualisiert/gelöscht." else # Kein Flag: Gesamten Eintrag löschen aws dynamodb delete-item \ --table-name email-rules \ --key '{"email_address": {"S": "'"$EMAIL"'"}}' \ --region us-east-2 echo "✓ Gesamte Regel für $EMAIL gelöscht (falls existent)." fi