#!/bin/sh

set -- /usr/bin/sway "$@"

for spec in \
	XDG_CACHE_HOME="$HOME/.cache"      \
	XDG_CONFIG_HOME="$HOME/.config"    \
	XDG_DATA_HOME="$HOME/.local/share" \
	XDG_RUNTIME_DIR="$TMP/runtime"     \
;
do
	env_name="${spec%%=*}"
	env_value="${spec#*=}"

	eval '[ -z "$'$env_name'" ] || continue'

	[ -d "$env_value" ] ||
		mkdir -p -- "$env_value"

	export "$spec"
done

[ ! -e "$XDG_CONFIG_HOME/user-dirs.dirs" ] ||
	. "$XDG_CONFIG_HOME/user-dirs.dirs"

if [ -z "$XDG_VTNR" ]; then
	XDG_VTNR="$(tty)"
	XDG_VTNR="${XDG_VTNR##/dev/tty}"
	export XDG_VTNR
fi

for config in \
	"$HOME/.sway/config"           \
	"$XDG_CONFIG_HOME/sway/config" \
	"/etc/sway/config"             \
;
do
	if [ -f "$config" ]; then
		set -- "$@" --config "$config"
		break
	fi
done

# Launch DBus if needed
[ -n "$DBUS_SESSION_BUS_ADDRESS" ] || ! which dbus-launch >/dev/null 2>&1 ||
	set -- dbus-launch --exit-with-session "$@"

exec "$@"
