#!/bin/bash
set -euo pipefail

# Input: file or argument list domain:title:desc:theme
# Output: grouped list by theme

inputs="${*:-}"
if [ -z "$inputs" ]; then
  echo "Usage: $0 \"domain:title:desc:theme,...\"" >&2
  exit 1
fi

IFS=',' read -ra ITEMS <<<"$inputs"
declare -A GROUPS
for item in "${ITEMS[@]}"; do
  IFS=':' read -ra parts <<<"$item"
  theme="${parts[3]:-default}"
  GROUPS["$theme"]+="$item,"
done

for theme in "${!GROUPS[@]}"; do
  echo "theme=$theme"
  echo "${GROUPS[$theme]}"
done
