# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit desktop xdg shell-completion

DESCRIPTION="A GPU-accelerated cross-platform terminal emulator and multiplexer"
HOMEPAGE="https://wezterm.org/"

NIGHTLY_ARCHIVE="wezterm-nightly.Ubuntu24.04.tar.xz"

S="${WORKDIR}/wezterm"

LICENSE="MIT"
SLOT="0"
KEYWORDS=""
PROPERTIES="live"
IUSE="wayland"

RESTRICT="mirror strip network-sandbox"

BDEPEND="
	net-misc/wget
"

RDEPEND="
	!x11-terms/wezterm
	dev-libs/openssl
	wayland? ( dev-libs/wayland )
	media-fonts/noto
	media-fonts/noto-emoji
	media-libs/fontconfig
	media-libs/mesa
	sys-apps/dbus
	x11-libs/cairo[X]
	x11-libs/libX11
	x11-libs/libxkbcommon[X,wayland?]
	x11-libs/xcb-util
	x11-libs/xcb-util-image
	x11-libs/xcb-util-keysyms
	x11-libs/xcb-util-wm
	x11-themes/hicolor-icon-theme
"
# Trim dependencies from official x11-terms/wezterm
# dev-libs/openssl-compat
# media-fonts/jetbrains-mono
# media-fonts/roboto
# x11-themes/xcursor-themes

QA_PREBUILT="
	usr/bin/*
"

src_unpack() {
	local uri="https://github.com/wezterm/wezterm/releases/download/nightly/${NIGHTLY_ARCHIVE}"
	local tarball="${T}/${NIGHTLY_ARCHIVE}"

	wget \
		--max-redirect=20 \
		--tries=3 \
		--timeout=30 \
		-O "${tarball}" \
		"${uri}" \
		|| die "failed to download WezTerm nightly"

	tar -xJf "${tarball}" -C "${WORKDIR}" \
		|| die "failed to unpack WezTerm nightly"
}

src_install() {

	# gaurd against upstream archive changes
	[[ -d "${S}/usr/bin" ]] || die "archive layout changed: missing usr/bin/"
	[[ -d "${S}/usr/share" ]] || die "archive layout changed: missing usr/share/"
	[[ -d "${S}/etc" ]] || die "archive layout changed: missing etc/"

	# install binaries
	dobin "${S}"/usr/bin/open-wezterm-here
	dobin "${S}"/usr/bin/strip-ansi-escapes
	dobin "${S}"/usr/bin/wezterm
	dobin "${S}"/usr/bin/wezterm-gui
	dobin "${S}"/usr/bin/wezterm-mux-server

	# install desktop file
	domenu "${S}"/usr/share/applications/org.wezfurlong.wezterm.desktop

	# install icon
	doicon -s 128 "${S}"/usr/share/icons/hicolor/128x128/apps/org.wezfurlong.wezterm.png

	# install completion file
	dobashcomp "${S}"/usr/share/bash-completion/completions/wezterm
	dozshcomp "${S}"/usr/share/zsh/functions/Completion/Unix/_wezterm

	# install env/shell init script
	insinto /etc/profile.d
	doins "${S}"/etc/profile.d/wezterm.sh

	# install extra files
	insinto /usr/share/metainfo
	doins "${S}"/usr/share/metainfo/org.wezfurlong.wezterm.appdata.xml

	insinto /usr/share/nautilus-python/extensions
	doins "${S}"/usr/share/nautilus-python/extensions/wezterm-nautilus.py

}

pkg_postinst() {
	xdg_pkg_postinst
}

pkg_postrm() {
	xdg_pkg_postrm
}