#!/bin/bash

# omarchy-theme-remove: Remove a theme from Omarchy by name
# Usage: omarchy-theme-remove <theme-name>

if [ -z "$1" ]; then
  mapfile -t extra_themes < <(find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n')

  if [[ ${#extra_themes[@]} -gt 0 ]]; then
    THEME_NAME=$(printf '%s\n' "${extra_themes[@]}" | sort | gum choose --header="Remove extra theme")
  else
    echo "No extra themes installed."
    exit 1
  fi
else
  THEME_NAME="$1"
fi

THEMES_DIR="$HOME/.config/omarchy/themes"
CURRENT_DIR="$HOME/.config/omarchy/current"
THEME_PATH="$THEMES_DIR/$THEME_NAME"

# Ensure a theme was set
if [ -z "$THEME_NAME" ]; then
  exit 1
fi

# Check if theme exists before attempting removal
if [ ! -d "$THEME_PATH" ]; then
  echo "Error: Theme '$THEME_NAME' not found."
  exit 1
fi

# Move to the next theme if the current theme is the one being removed
if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then
  omarchy-theme-next
fi

# Now remove the theme directory for THEME_NAME
rm -rf "$THEME_PATH"
