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

EAPI=8

#package.json: "electron": "^11.5.0"
ELECTRON_PV="11.5.0"
ELECTRON_P="electron-v${ELECTRON_PV}"
ELECTRON_URL="github.com/electron/electron/releases/download/v${ELECTRON_PV}"

DESCRIPTION="Six Degrees of Domain Admin"
HOMEPAGE="https://github.com/BloodHoundAD/BloodHound"
SRC_URI="https://github.com/BloodHoundAD/BloodHound/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
	amd64? ( https://${ELECTRON_URL}/${ELECTRON_P}-linux-x64.zip )
	arm? (   https://${ELECTRON_URL}/${ELECTRON_P}-linux-armv7l.zip )
	arm64? ( https://${ELECTRON_URL}/${ELECTRON_P}-linux-arm64.zip )
	x86? (   https://${ELECTRON_URL}/${ELECTRON_P}-linux-ia32.zip )
	https://dev.pentoo.ch/~blshkv/distfiles/${PN}-4.2.0-node_modules.tar.gz"
#create modules using "npm install"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64"

DEPEND=">=net-libs/nodejs-12.10.0[npm]"
#	dev-util/electron-packager"
RDEPEND="${DEPEND}"
#	gnome-base/gconf"
BDEPEND="app-arch/unzip"

BLOODHOUND_BINDIR="FAILED_TO_DETECT_ARCH"
QA_FLAGS_IGNORED="usr/lib.*/BloodHound/.*\.so"

src_prepare() {
	eapply "${FILESDIR}/4.2.0-singlearch.patch"
	mv "${WORKDIR}/node_modules" "${S}"
	eapply_user
}

src_compile() {
	#npm shrinkwrap
	#we  provide node_modules, there is no need to install
	#npm install \

	addpredict /etc/npm
#	npm run-script webbuild || die "Webbuild failed to compile"
	npm run-script compile || die "Webbuild failed to compile"

	if use amd64; then
		npm run-script package:linux_64 || die "Failed to compile"
		BLOODHOUND_BINDIR="BloodHound-linux-x64"
#	elif use x86; then
#		npm run-script linuxbuild_32 || die "Failed to compile"
#		BLOODHOUND_BINDIR="BloodHound-linux-ia32"
	elif use arm; then
		npm run-script package:linux_arm || die "Failed to compile"
		BLOODHOUND_BINDIR="BloodHound-linux-armv7l"
	elif use arm64; then
		npm run-script package:linux_arm64 || die "Failed to compile"
		BLOODHOUND_BINDIR="BloodHound-linux-arm64"
	fi
}

src_install() {
	dodir /usr/$(get_libdir)/${PN}
	cp -R ${BLOODHOUND_BINDIR}/* "${ED}"/usr/$(get_libdir)/${PN} || die "Copy files failed"

	newbin - ${PN} <<-EOF
	#!/bin/sh
	cd /usr/$(get_libdir)/${PN}
	LD_LIBRARY_PATH=. exec ./${PN} "\${@}"
	EOF
}

pkg_postinst() {
	einfo "Run with --disable-gpu-sandbox if you see \"GPU process isn't usable\" message"
}