73 lines
2.0 KiB
Bash
Executable File
73 lines
2.0 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
|
|
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 |