#!/bin/sh
# determine if the tmux server is running
if [ "$TMUX" ]; then
    FZF="fzf-tmux"
else
    FZF="fzf"
fi

if [ -z "$1" ]; then
    ZOXIDE_RESULT=$(zoxide query -l | $FZF --reverse)
elif [ x"." == x"$1" ]; then
    ZOXIDE_RESULT=$PWD
else
    ZOXIDE_RESULT=$(zoxide query $1)
fi

if [ -z "$ZOXIDE_RESULT" ]; then
    exit 0
fi

FOLDER=$(echo $ZOXIDE_RESULT | awk 'BEGIN{FS="/"} { print $(NF-1)"_"$NF }' | tr '. ' '_')
SESSION=$(tmux list-sessions | grep $FOLDER | awk -F: '{print $1}')

if [ -z "$TMUX" ]; then
    if [ -z "$SESSION" ]; then
        cd $ZOXIDE_RESULT
        tmux new-session -s $FOLDER
    else
        tmux attach -t $SESSION
    fi
else
    if [ -z "$SESSION" ]; then
       cd $ZOXIDE_RESULT
       tmux new-session -d -s $FOLDER
       tmux switch-client -t $FOLDER
    else
        tmux switch-client -t $SESSION
    fi
fi