#!/usr/bin/env sh

set -e

tmpfile=$(mktemp)
zellij action dump-screen $tmpfile
status_line=$(cat $tmpfile | rg -e "(?:NOR|INS|SEL)\s+[\x{2800}-\x{28FF}]*\s+(\S*)\s[^│]* (\d+):*.*" -o --replace '$1 $2')
filename=$(echo $status_line | awk '{ print $1 }')
escaped_filename=$(echo "$filename" | sed 's/[\/&]/\\&/g')
line_number=$(echo $status_line | awk '{ print $2 }')
extension="${filename##*.}"

case "$extension" in
  "py")
    # this is pretty pytest-specific, but will probably be fine for the time being
    test_runner=${PYTEST:-pytest}
    cmd="get_python_function_at_position.py $filename $line_number | pytester.py - | sed 's/^/$test_runner /;s/$/ $escaped_filename/' | sh"
    ;;
  *)
    echo "uh oh!"
    exit 1
    ;;
esac

full_cmd="echo \"running $cmd\" && $cmd"

zellij action new-pane --direction down -- zsh -c "$full_cmd"