#!/bin/bash

# Root directory to search in
ROOT_DIR="${1:-.}"

# Rename function
rename_item() {
  local OLD_PATH="$1"
  local DIRNAME="$(dirname "$OLD_PATH")"
  local BASENAME="$(basename "$OLD_PATH")"

  local NEW_BASENAME="$BASENAME"
  NEW_BASENAME="${NEW_BASENAME//OpenAI/DXPR}"
  NEW_BASENAME="${NEW_BASENAME//Dxpr/Dxpr}"
  NEW_BASENAME="${NEW_BASENAME//dxpr/dxpr}"

  if [[ "$NEW_BASENAME" != "$BASENAME" ]]; then
    local NEW_PATH="$DIRNAME/$NEW_BASENAME"
    echo "Renaming: $OLD_PATH → $NEW_PATH"
    mv "$OLD_PATH" "$NEW_PATH"
  fi
}

export -f rename_item

# Use depth-first traversal to avoid renaming parents before children
find "$ROOT_DIR" -depth -name '*[Oo]pen[Aa][Ii]*' -exec bash -c 'rename_item "$0"' {} \;

