/var/log/safesquid/*/*.log {
    hourly
    missingok
    notifempty
    copytruncate
    compress
    delaycompress
    rotate 30
    sharedscripts
    postrotate
        /bin/bash -c '
        TARGET_DIR="/var/log/safesquid"
        [ -d "$TARGET_DIR" ] || exit 0

        # Helper to get current disk usage % of partition holding /var/log/safesquid
        get_disk_used_percent() {
            df -P "$TARGET_DIR" 2>/dev/null | awk "NR==2 {print \$5}" | tr -d "%"
        }

        # 1. Compress inactive uncompressed log files preserving original timestamps
        find "$TARGET_DIR" -type f \( -name "*.log" -o -name "*.log.*" \) ! -name "*.gz" 2>/dev/null | while IFS= read -r f; do
            # Skip files currently open / in-use by a process
            if command -v fuser >/dev/null 2>&1; then
                fuser "$f" >/dev/null 2>&1 && continue
            elif command -v lsof >/dev/null 2>&1; then
                lsof -f -- "$f" >/dev/null 2>&1 && continue
            fi

            # Compress and strictly preserve original modification & access timestamps
            if gzip -c "$f" > "${f}.gz" 2>/dev/null; then
                touch -r "$f" "${f}.gz" 2>/dev/null
                rm -f "$f"
                logger -t safesquid.logrotate "Compressed ${f} -> ${f}.gz (timestamp preserved)"
            fi
        done

        # 2. Enforce partition usage <= 80% (ensure at least 20% free space)
        USED=$(get_disk_used_percent)
        if [ -n "$USED" ] && [ "$USED" -gt 80 ]; then
            logger -t safesquid.logrotate "Disk usage is ${USED}% (exceeds 80% threshold). Purging oldest log files."

            # Sort all regular files by modification timestamp (oldest first)
            find "$TARGET_DIR" -type f -printf "%T@ %p\n" 2>/dev/null | sort -n | awk "{\$1=\"\"; print substr(\$0,2)}" | while IFS= read -r f; do
                [ "$(get_disk_used_percent)" -le 80 ] && break
                [ -f "$f" ] || continue

                # Never delete active in-use files
                if command -v fuser >/dev/null 2>&1; then
                    fuser "$f" >/dev/null 2>&1 && continue
                elif command -v lsof >/dev/null 2>&1; then
                    lsof -f -- "$f" >/dev/null 2>&1 && continue
                fi

                rm -f "$f" && logger -t safesquid.logrotate "Purged oldest log file to free space: ${f}"
            done

            logger -t safesquid.logrotate "Disk purge complete. Current partition usage: $(get_disk_used_percent)%"
        fi
        '
    endscript
}
