#!/usr/bin/env bash
# Installed launcher — works from /usr or /usr/local (bin/../share/vibe-wallet).
# Portable symlink resolve (no GNU-only flags).
set -euo pipefail

_vibe_resolve() {
  local target="$1"
  local dir
  while [[ -L "$target" ]]; do
    dir="$(cd "$(dirname "$target")" && pwd)"
    target="$(readlink "$target")"
    [[ "$target" != /* ]] && target="$dir/$target"
  done
  dir="$(cd "$(dirname "$target")" && pwd)"
  echo "${dir}/$(basename "$target")"
}

HERE="$(cd "$(dirname "$(_vibe_resolve "$0")")" && pwd)"
PREFIX="$(cd "$HERE/.." && pwd)"
SHARE="${OGC_PORTFOLIO_SHARE:-$PREFIX/share/vibe-wallet}"
if [[ ! -d "$SHARE/vibe_wallet" ]]; then
  SHARE="/usr/share/vibe-wallet"
fi
export PYTHONPATH="${SHARE}${PYTHONPATH:+:$PYTHONPATH}"
# Gio.Settings aborts if this schema is not on the search path. The .deb
# compiles it next to the GNOME extension, which is not a default schema dir.
for _schema in \
  "$PREFIX/share/gnome-shell/extensions/vibe-wallet@vibewallet/schemas" \
  "/usr/share/gnome-shell/extensions/vibe-wallet@vibewallet/schemas"
do
  if [[ -f "$_schema/gschemas.compiled" ]]; then
    export GSETTINGS_SCHEMA_DIR="${_schema}${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"
    break
  fi
done
unset _schema
exec python3 -m vibe_wallet "$@"
