# Template file for 'mattermost-desktop'
pkgname=mattermost-desktop
version=4.5.2
revision=2
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="Artem Zhurikhin <ashpool@xecut.net>"
license="Apache-2.0"
homepage="https://mattermost.com/"
distfiles="https://github.com/mattermost/desktop/archive/v${version}.tar.gz"
checksum=17e32346592d175f091a4f12068e0cfc5cfd20ed7894f88bb5b54b2eb6eac74a
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
}
