diff --git a/basic_setup/delete-rule.sh b/basic_setup/delete-rule.sh new file mode 100755 index 0000000..78d58e7 --- /dev/null +++ b/basic_setup/delete-rule.sh @@ -0,0 +1,73 @@ +#!/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 + UPDATE_EXPR="REMOVE" + ATTR_NAMES="" + ATTR_VALUES="" + + if [ "$OOO" = true ]; then + UPDATE_EXPR="$UPDATE_EXPR ooo_message, ooo_content_type" + UPDATE_EXPR="$UPDATE_EXPR SET ooo_active = :false" + ATTR_VALUES="$ATTR_VALUES, :false={'BOOL': false}" + fi + + if [ "$FORWARD" = true ]; then + if [ -n "$UPDATE_EXPR" ] && [ "$UPDATE_EXPR" != "REMOVE" ]; then + UPDATE_EXPR="$UPDATE_EXPR," + fi + UPDATE_EXPR="$UPDATE_EXPR SET forwards = :empty_list" + ATTR_VALUES="$ATTR_VALUES, :empty_list={'L': []}" + 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:1}"'}' \ + --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 \ No newline at end of file