#!/bin/bash

set -uo pipefail
# A failure in this script should not prevent the terminal from opening
set +e

#CMD=i3-sensible-terminal
if [ -n "${WAYLAND_DISPLAY:-}" ]; then
	CMD=foot
else
	CMD=xfce4-terminal
fi

# If a window with a path in its title is focused, open a terminal with that
# location as working directory. Like this, terminals are opened in the same
# directory as the currently focused one.

sway_focused_window() {
	swaymsg -t get_tree | jq -r '.. | select(.focused?) | .name'
}

title="$(sway_focused_window || xtitle)"
path=""

if [[ $title =~ (in|^.*@$(hostname):)(~?)(/.*) ]]; then
	path="${BASH_REMATCH[3]}"
	[[ ${BASH_REMATCH[2]} == "~" ]] && path="$HOME$path"

	while [[ $path != / && -n $path && ! -d $path ]]; do
		path="$(dirname "$path")"
	done
fi

# Open terminal at specified path
if [[ -n $path ]] && [[ -r $path ]]; then
	exec env -C "$path" $CMD "$@"
else
	exec $CMD "$@"
fi
