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

EAPI=8

inherit desktop xdg

DESCRIPTION="A GUI client for Linux, support Xray and sing-box and others"
HOMEPAGE="https://github.com/2dust/v2rayN"
SRC_URI="https://github.com/2dust/v2rayN/releases/download/${PV}/v2rayN-linux-64.zip"

S="${WORKDIR}"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="-* ~amd64"
RESTRICT="strip mirror"

RDEPEND="
	media-libs/fontconfig
	media-libs/freetype
"

BDEPEND="app-arch/unzip"

QA_PREBUILT="*"

src_unpack() {
	default

	# The zip has a top-level directory (v2rayN-linux-64),
	# flatten it so S=WORKDIR works.
	local dir
	for dir in "${WORKDIR}"/v2rayN-linux-*; do
		if [[ -d "${dir}" ]]; then
			mv "${dir}"/* "${WORKDIR}"/ || die "failed to move extracted files"
			rmdir "${dir}" || die
			break
		fi
	done
}

src_install() {
	insinto /opt/v2rayn
	doins -r *

	fperms +x /opt/v2rayn/v2rayN
	fperms +x /opt/v2rayn/AmazTool
	fperms +x /opt/v2rayn/bin/xray/xray
	fperms +x /opt/v2rayn/bin/sing_box/sing-box
	fperms +x /opt/v2rayn/bin/mihomo/mihomo

	dosym -r /opt/v2rayn/v2rayN /usr/bin/v2rayn

	for size in 16 24 32 48 64 128 256; do
		newicon -s ${size} "${FILESDIR}"/icons/${size}x${size}/apps/v2rayn.png v2rayn.png
	done
	domenu "${FILESDIR}"/v2rayn.desktop
}

pkg_postinst() {
	xdg_pkg_postinst

	elog "v2rayN is installed in /opt/v2rayn"
	elog "Run with: v2rayn"
	elog "Core binaries (Xray, sing-box, mihomo) are bundled in /opt/v2rayn/bin/"
}

pkg_postrm() {
	xdg_pkg_postrm
}