delete rule
This commit is contained in:
parent
e756c5f91d
commit
d2dbceb53e
|
|
@ -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
|
||||
Loading…
Reference in New Issue