delete rule

This commit is contained in:
Andreas Knuth 2025-12-17 14:15:37 -06:00
parent e756c5f91d
commit d2dbceb53e
1 changed files with 73 additions and 0 deletions

73
basic_setup/delete-rule.sh Executable file
View File

@ -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