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

EAPI=8

inherit desktop xdg

DESCRIPTION="A Community-led Hyper-Hackable Text Editor"
HOMEPAGE="https://pulsar-edit.dev/"

ur=https://github.com/pulsar-edit/pulsar/releases/download
SRC_URI="
	amd64? ( ${ur}/v${PV}/Linux.pulsar-${PV}.tar.gz -> ${P}-amd64.tar.gz )
"
S="${WORKDIR}/pulsar-${PV}"

LICENSE="MIT"
SLOT="0"
KEYWORDS="-* ~amd64"

# binary package; no tests available
RESTRICT="test"

RDEPEND="
	app-accessibility/at-spi2-core
	app-crypt/libsecret
	dev-libs/expat
	dev-libs/glib
	dev-libs/nspr
	dev-libs/nss
	dev-libs/openssl-compat
	dev-vcs/git
	media-libs/alsa-lib
	media-libs/mesa
	net-misc/curl
	net-print/cups
	sys-apps/dbus
	sys-libs/glibc
	virtual/zlib
	x11-libs/cairo
	x11-libs/gdk-pixbuf
	x11-libs/gtk+:3[X]
	x11-libs/libdrm
	x11-libs/libX11
	x11-libs/libxcb
	x11-libs/libXcomposite
	x11-libs/libXdamage
	x11-libs/libXext
	x11-libs/libXfixes
	x11-libs/libxkbcommon
	x11-libs/libxkbfile
	x11-libs/libxshmfence
	x11-libs/libXrandr
	x11-libs/pango
"

QA_PREBUILT="opt/Pulsar/*"
QA_PRESTRIPPED="opt/Pulsar/resources/*"  # Files are already stripped

src_unpack() {
	default
}

src_prepare() {
	default

	# We do not install licenses
	rm resources/LICENSE.md || die "Failed to remove LICENSE"
}

src_install() {
	# Bug #906939 - Remove broken symlinks first, then clean empty directories
	find "${S}" -xtype l -delete
	find "${S}" -empty -type d -delete

	dodir /opt/Pulsar
	mv "${S}"/* "${ED}"/opt/Pulsar

	dosym -r /opt/Pulsar/resources/pulsar.sh /usr/bin/pulsar

	doicon "${ED}"/opt/Pulsar/resources/pulsar.png
	make_desktop_entry "/usr/bin/pulsar %F" "Pulsar" "pulsar" \
		"GNOME;GTK;Utility;TextEditor;Development;" \
		"GenericName=Text Editor\nStartupNotify=true\nStartupWMClass=pulsar\n" \
		"MimeType=application/javascript;application/json;application/x-httpd-eruby;" \
			"application/x-httpd-php;application/x-httpd-php3;application/x-httpd-php4;" \
			"application/x-httpd-php5;application/x-ruby;application/x-bash;application/x-csh;" \
			"application/x-sh;application/x-zsh;application/x-shellscript;application/x-sql;" \
			"application/x-tcl;application/xhtml+xml;application/xml;application/xml-dtd;" \
			"application/xslt+xml;text/coffeescript;text/css;text/html;text/plain;text/xml;" \
			"text/xml-dtd;text/x-bash;text/x-c++;text/x-c++hdr;text/x-c++src;text/x-c;text/x-chdr;" \
			"text/x-csh;text/x-csrc;text/x-dsrc;text/x-diff;text/x-go;text/x-java;text/x-java-source;" \
			"text/x-makefile;text/x-markdown;text/x-objc;text/x-perl;text/x-php;text/x-python;" \
			"text/x-ruby;text/x-sh;text/x-zsh;text/yaml;inode/directory"

	einstalldocs

	find "${ED}" -name '*.la' -delete || die
}

pkg_postinst() {
	xdg_desktop_database_update
}