#!/bin/bash

# Delete objects older than N days
BUCKET_NAME="my-bucket-name"
DAYS_OLD=30

# Calculate date threshold (YYYY-MM-DD)
DATE_THRESHOLD=$(date -d "-$DAYS_OLD days" +%Y-%m-%d)

echo "Deleting objects in gs://$BUCKET_NAME older than $DATE_THRESHOLD..."

# Use gsutil (or gcloud storage) to find and remove objects
# Note: Lifecycle policies are preferred for production.

gsutil ls -lR "gs://$BUCKET_NAME/**" | while read LINE; do
    # Parse the line to get date and filename (simplified example)
    # Real parsing of `gsutil ls -l` output can be brittle.
    # Better approach with gcloud storage:
    
    # Using gcloud storage objects list with filtering
    gcloud storage objects list "gs://$BUCKET_NAME/**" \
        --filter="timeCreated < $DATE_THRESHOLD" \
        --format="value(name)" | while read OBJ_NAME; do
            echo "Deleting $OBJ_NAME"
            gcloud storage objects delete "gs://$BUCKET_NAME/$OBJ_NAME" --quiet
    done
done
