#!/bin/sh
# JM Chat — the JM Tech Power members chat in its own window.
#
# Opens https://www.jmtechpower.com/chat in a Chromium-family app window
# (Chrome, Chromium, Edge or Brave) with its own profile, so it keeps you
# signed in and gets its own taskbar/dock icon. It bundles nothing from the
# site: the chat you see is always the live one. Falls back to your default
# browser when no Chromium-family browser is installed.
#
#   jm-chat              open Chat
#   jm-chat --version
#   JM_HOST=https://staging.example.com jm-chat   use another server
VERSION="1.0.0"

case "$1" in
    --version) echo "JM Chat $VERSION"; exit 0 ;;
    -h|--help) sed -n '2,12p' "$0" | sed 's/^# \{0,1\}//'; exit 0 ;;
esac

HOST="${JM_HOST:-https://www.jmtechpower.com}"
HOST="${HOST%/}"
URL="$HOST/chat?app=desktop"

if [ "$(uname -s)" = "Darwin" ]; then
    PROFILE="$HOME/Library/Application Support/JM/chat-profile"
else
    PROFILE="${XDG_CONFIG_HOME:-$HOME/.config}/jm/chat-profile"
fi

find_browser() {
    if [ "$(uname -s)" = "Darwin" ]; then
        for app in "Google Chrome" "Microsoft Edge" "Brave Browser" "Chromium"; do
            p="/Applications/$app.app/Contents/MacOS/$app"
            [ -x "$p" ] && { echo "$p"; return 0; }
            p="$HOME/Applications/$app.app/Contents/MacOS/$app"
            [ -x "$p" ] && { echo "$p"; return 0; }
        done
        return 1
    fi
    for name in google-chrome google-chrome-stable chromium chromium-browser \
                microsoft-edge microsoft-edge-stable brave-browser; do
        p="$(command -v "$name" 2>/dev/null)" && [ -n "$p" ] && { echo "$p"; return 0; }
    done
    return 1
}

if BROWSER="$(find_browser)"; then
    mkdir -p "$PROFILE"
    "$BROWSER" --app="$URL" --user-data-dir="$PROFILE" --class=JMChat \
        --window-size=1100,760 --no-first-run --no-default-browser-check \
        >/dev/null 2>&1 &
    exit 0
fi

echo "JM Chat: no Chrome, Chromium, Edge or Brave found; opening your default browser." >&2
if command -v xdg-open >/dev/null 2>&1; then xdg-open "$URL"
elif command -v open >/dev/null 2>&1; then open "$URL"
else echo "Open $URL in your browser." >&2; exit 1
fi
