#!/usr/bin/env bash

# Wait for the game to be launched
while ! pgrep -u "$USER" ^$1 &> /dev/null ; do
    sleep 0.05
done

unset cliptext
socketFile="$(find /tmp -maxdepth 1 -name "orca-*.sock")"
while pgrep -u "$USER" ^$1 &> /dev/null ; do
    sleep 0.05
    if [[ -f ~/.agmsilent ]]; then
        continue
    fi
    if [[ "$(uname)" == "Darwin" ]]; then
        tmp="$(pbpaste 2> /dev/null)"
    else
        tmp="$(xclip -d "${DISPLAY:-:0}" -selection clipboard -o 2> /dev/null)"
    fi
    tmp="${tmp//%/ percent }"
    if [ "$tmp" != "$cliptext" ] ; then
        cliptext="$tmp"
        if [[ "${cliptext,,}" =~ key|load|private|says|terminal ]]; then
            if [[ "$(uname)" == "Darwin" ]]; then
                say -v alex -r 300 "$cliptext"
            else
                if [[ -w "${socketFile}" ]]; then
                    echo "<#APPEND#>$cliptext" | socat - UNIX-CLIENT:"${socketFile}"
                else
                    spd-say -w -- "$cliptext"
                fi
            fi
        else
            if [[ "$(uname)" == "Darwin" ]]; then
                say -v alex -r 300 "$cliptext"
            else
                if [[ -w "${socketFile}" ]]; then
                    echo "$cliptext" | socat - UNIX-CLIENT:"${socketFile}"
                else
                    spd-say -- "$cliptext"
                fi
            fi
        fi
    fi
done

exit 0