#!/bin/bash

# omarchy:summary=Restore Omarchy to the package install (undo omarchy-dev-link)
# omarchy:group=dev

set -euo pipefail

if [[ $EUID -eq 0 ]]; then
  echo "Error: run omarchy-dev-unlink as your user, not under sudo." >&2
  exit 1
fi

if [[ ${1:-} == "-h" || ${1:-} == "--help" ]]; then
  cat <<USAGE
Usage: omarchy dev unlink

Removes /etc/omarchy.conf so OMARCHY_PATH falls back to /usr/share/omarchy
(the package install). Updates Hyprland/systemd session env and restarts
omarchy-shell so live state matches.
USAGE
  exit 0
fi

if [[ ! -f /etc/omarchy.conf ]]; then
  echo "Not currently linked. OMARCHY_PATH already resolves to /usr/share/omarchy."
  exit 0
fi

# Capture the path dev-link wrote BEFORE we delete the conf, so we know
# which bin/ to strip from PATH.
prior_target=$(sed -n 's/^[[:space:]]*export[[:space:]]\+OMARCHY_PATH="\?\([^"]*\)"\?/\1/p' /etc/omarchy.conf | tail -1)
sudo rm -f /etc/omarchy.conf
echo "Removed /etc/omarchy.conf"

export OMARCHY_PATH=/usr/share/omarchy
if [[ -n $prior_target ]]; then
  PATH=$(printf '%s' "$PATH" | tr ':' '\n' | grep -vFx "$prior_target/bin" | paste -sd:)
  export PATH
fi

if command -v hyprctl >/dev/null 2>&1 && hyprctl version &>/dev/null; then
  hyprctl setenv OMARCHY_PATH /usr/share/omarchy >/dev/null
  hyprctl setenv PATH "$PATH" >/dev/null
  echo "  Updated Hyprland session env."

  systemctl --user import-environment OMARCHY_PATH PATH 2>/dev/null || true
  echo "  Updated systemd --user env."

  if pgrep -x quickshell >/dev/null 2>&1; then
    omarchy-restart-shell
    echo "  Restarted omarchy-shell."
  fi

  hyprctl reload >/dev/null
  echo "  Reloaded Hyprland config."
fi

echo
echo "Done. Existing shells still have the old OMARCHY_PATH until restarted."
