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

EAPI=8

inherit desktop unpacker xdg-utils

DESCRIPTION="Claude AI Desktop Application"
HOMEPAGE="https://claude.ai https://github.com/aaddrick/claude-desktop-debian"
SRC_URI="
	amd64? ( https://github.com/aaddrick/claude-desktop-debian/releases/download/v$(ver_cut 4-6)%2Bclaude$(ver_cut 1-3)/claude-desktop_$(ver_cut 1-3)-$(ver_cut 4-6)_amd64.deb )
	arm64? ( https://github.com/aaddrick/claude-desktop-debian/releases/download/v$(ver_cut 4-6)%2Bclaude$(ver_cut 1-3)/claude-desktop_$(ver_cut 1-3)-$(ver_cut 4-6)_arm64.deb )
"

LICENSE="Anthropic-TOS"
SLOT="0"
KEYWORDS="~amd64 ~arm64"

RESTRICT="bindist mirror strip"
QA_PREBUILT="usr/lib/claude-desktop/*"

BDEPEND="app-arch/zstd"

S="${WORKDIR}"

src_install() {
	insinto /usr/lib/claude-desktop
	doins -r usr/lib/claude-desktop/.

	fperms +x /usr/lib/claude-desktop/launcher-common.sh
	fperms +x /usr/lib/claude-desktop/node_modules/electron/dist/electron
	fperms 4755 /usr/lib/claude-desktop/node_modules/electron/dist/chrome-sandbox
	fperms +x /usr/lib/claude-desktop/node_modules/electron/dist/chrome_crashpad_handler

	dobin usr/bin/claude-desktop

	domenu usr/share/applications/claude-desktop.desktop

	local size
	for size in 16 24 32 48 64 128 256 512; do
		local icon="usr/share/icons/hicolor/${size}x${size}/apps/claude-desktop.png"
		if [[ -f ${icon} ]]; then
			doicon -s "${size}" "${icon}"
		fi
	done
}

pkg_postinst() {
	xdg_desktop_database_update
	xdg_icon_cache_update

	elog "Claude Desktop has been installed."
	elog "Run 'claude-desktop --doctor' to check system dependencies."
	elog ""
	elog "For native Wayland support (disables global hotkeys), set:"
	elog "  CLAUDE_USE_WAYLAND=1"
}

pkg_postrm() {
	xdg_desktop_database_update
	xdg_icon_cache_update
}