email-amazon/basic_setup/delete-rule.sh

85 lines
2.3 KiB
Bash
Executable File

#!/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