# Template file for 'mattermost-desktop'
pkgname=mattermost-desktop
version=4.6.0
revision=1
archs="x86_64* i686*"
wrksrc="desktop-${version}"
# electron-builder needs GNU tar
hostmakedepends="git p7zip jq nodejs-lts-10 python libicns GraphicsMagick xz tar"
makedepends="libnotify-devel electron7"
depends="electron7"
short_desc="Team messaging app, an open source Slack alternative"
maintainer="Orphaned <orphan@voidlinux.org>"
license="Apache-2.0"
homepage="https://mattermost.com/"
distfiles="https://github.com/mattermost/desktop/archive/v${version}.tar.gz"
checksum=ee1ff93120ed0d296c293950fd00cbd9dcc36a4f5085e1f3abf9c48ccc1e7ce0
nocross=yes

if [ "$XBPS_LIBC" = "musl" ]; then
	hostmakedepends+=" gcompat" #XXX: ugly af
	# Npm fetches a bunch of binaries that are lined against glibc
	# refuses to use the system one
	# this also kinda limits the amount of support host archs for the build
	# can partly fixed by adding some host deps so these tools can be built
	# from source. In short npm packages are a busted mess that shouldn't exist
fi

do_configure() {
	case "${XBPS_TARGET_MACHINE#-musl}" in
		x86_64*) sed -i 's/--ia32//g' package.json ;;
		i686*) sed -i 's/--x64//g' package.json ;;
	esac

	# Prepend to system electron in order to avoid an unneeded download.
	local electronDist="/usr/lib/electron7"
	local electronVersion="$(<"$electronDist"/version)"
	jq '{"electronDist": $electronDist, "electronVersion": $electronVersion} + .' \
		--arg electronDist "$electronDist" \
		--arg electronVersion "$electronVersion" \
		electron-builder.json > electron-builder-new.json
	mv electron-builder-new.json electron-builder.json
}

pre_build() {
	# XXX: Should probably be done in some kind of npm helper
	export USE_SYSTEM_7ZA="true"
	npm install
}

do_build() {
	export USE_SYSTEM_7ZA="true"
	npm run build
	npm run package:linux
}

do_install() {
	case $XBPS_TARGET_MACHINE in
		x86_64*)	cd release/linux-unpacked ;;
		i686*)		cd release/linux-ia32-unpacked ;;
	esac
	vmkdir usr/libexec/${pkgname}
	vinstall resources/app.asar 644 usr/libexec/${pkgname}
	vinstall Mattermost.desktop 644 usr/share/applications
	vinstall icon.svg 644 usr/share/icons/hicolor/scalable/apps mattermost-desktop.svg
	vbin ${FILESDIR}/mattermost-desktop.sh mattermost-desktop
}
