85 lines
2.3 KiB
Bash
Executable File
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 |