# Maintainer: Alexander Epaneshnikov <alex19ep@archlinux.org>

_langs=(Brazilian-Portuguese English Esperanto Georgian Kyrgyz Macedonian
        Russian Tatar Ukrainian)
_voices=(alan aleksandr aleksandr-hq anatol anna arina artemiy azamat
         bdl clb elena evgeniy-eng evgeniy-rus irina kiko Leticia-F123
         natalia natia nazgul pavel slt spomenka talgat victoria volodymyr
         yuriy)
pkgbase=rhvoice
pkgname=(rhvoice $(for l in "${_langs[@]}"; do echo rhvoice-language-${l,,}; done)
         $(for v in "${_voices[@]}"; do echo rhvoice-voice-${v,,}; done))
pkgver=1.4.2
pkgrel=3
pkgdesc="Free and open source speech synthesizer for Russian and other languages"
arch=('x86_64')
url="https://github.com/RHVoice/RHVoice"
license=('GPL3')
depends=('speech-dispatcher' 'libpulse' 'portaudio')
makedepends=('scons' 'libao')
source=(https://github.com/RHVoice/RHVoice/releases/download/$pkgver/$pkgbase-$pkgver.tar.gz{,.sig})
validpgpkeys=(6C7F7F22E0152A6FD5728592DAD6F3056C897266)
sha512sums=('edee8fa79fa0f3eecd2bca6a6c4846876cce2fc7b843a481357b536a42485f9524fc64e9e8a6766cbe46bcc2ef9ad0375cab16ad35722895db5697e14234a8de'
            'SKIP')
b2sums=('0f5564dcb986eec49bead04b46afe7e5caf8a186cdd23f3c9727ee9e6bdeb4b326d6b9cec3f9cdde78d01286d16f05aad840f67aa44b22ce05b7db85d04f2144'
        'SKIP')

build() {
	cd "${pkgbase}-${pkgver}"
	export SCONSFLAGS="$MAKEFLAGS"
	scons prefix="/usr" sysconfdir="/etc" CPPFLAGS="$CPPFLAGS" CCFLAGS="$CFLAGS" \
	      LINKFLAGS="$LDFLAGS"
}

package_rhvoice() {
	optdepends=('libao: for ao backend'
	            $(for v in "${_voices[@]}"; do echo rhvoice-voice-${v,,}; done))
	backup=('etc/RHVoice/RHVoice.conf')
	groups=('rhvoice')
	install=rhvoice.install
	cd "${pkgbase}-${pkgver}"
	export SCONSFLAGS="$MAKEFLAGS"
	scons install DESTDIR="${pkgdir}" prefix="/usr" sysconfdir="/etc" \
	      CPPFLAGS="$CPPFLAGS" CCFLAGS="$CFLAGS" LINKFLAGS="$LDFLAGS"
	# remove split data
	rm -r "${pkgdir}/usr/share/"
}

# package functions for languages
for l in "${_langs[@]}"; do
	eval "
package_rhvoice-language-${l,,}() {
	pkgdesc=\"Rhvoice ${l,,} language\"
	depends=('rhvoice')
	groups=('rhvoice')

	cd \"${pkgbase}-${pkgver}\"
	if [[ -d data/languages/$l/userdict ]]; then
		install -vDm644 data/languages/$l/userdict/src/*.txt -t \"\${pkgdir}/usr/share/RHVoice/languages/$l/userdict/src\"
	fi
	if [[ $l == Macedonian ]]; then
		license=(AGPL3)
	fi
	install -vDm644 data/languages/$l/*.* -t \"\${pkgdir}/usr/share/RHVoice/languages/$l\"
}
    "
done

# package functions for voices
for v in "${_voices[@]}"; do
	eval "
package_rhvoice-voice-${v,,}() {
	_voicelang=\$(grep \"language\" \$pkgbase-\$pkgver/data/voices/$v/voice.info | sed 's/^.*=//')
	pkgdesc=\"Rhvoice ${v,,} voice for \${_voicelang,,} language\"
	depends=(rhvoice-language-\${_voicelang,,})
	groups=('rhvoice')
	if [[ $v == aleksandr-hq || $v == arina || $v == artemiy || $v == evgeniy-eng \
	      || $v == evgeniy-rus || $v == pavel || $v == victoria \
	      || $v == volodymyr || $v == yuriy ]]; then
		license=('custom:CC-BY-NC-ND-4.0')
	elif [[ $v == kiko ]]; then
		license=('custom:CC-BY-NC-SA-4.0')
	elif [[ $v == Leticia-F123 ]]; then
		license=('custom:CC-BY-SA-4.0')
	elif [[ $v == natia || $v == talgat ]]; then
		license=('custom')
	fi

	cd \"${pkgbase}-${pkgver}\"
	install -vDm644 data/voices/$v/16000/* -t \"\${pkgdir}/usr/share/RHVoice/voices/$v/16000\"
	install -vDm644 data/voices/$v/24000/* -t \"\${pkgdir}/usr/share/RHVoice/voices/$v/24000\"
	install -vDm644 data/voices/$v/{voice.info,voice.params} -t \"\${pkgdir}/usr/share/RHVoice/voices/$v\"
	case \$license in
	'custom:CC-BY-NC-ND-4.0')
		install -vDm644 licenses/by-nc-nd-4.0.txt \"\${pkgdir}/usr/share/licenses/\${pkgname}/license\"
	;;
	'custom:CC-BY-NC-SA-4.0')
		install -vDm644 licenses/by-nc-sa-4.0.txt \"\${pkgdir}/usr/share/licenses/\${pkgname}/license\"
	;;
	'custom:CC-BY-SA-4.0')
		install -vDm644 licenses/by-sa-4.0.txt \"\${pkgdir}/usr/share/licenses/\${pkgname}/license\"
	;;
	'custom')
	if [[ $v == natia ]]; then
		install -vDm644 licenses/voices/natia/license-eng.txt \"\${pkgdir}/usr/share/licenses/\${pkgname}/license\"
	elif [[ $v == talgat ]]; then
		install -vDm644 licenses/voices/talgat/license-eng.txt \"\${pkgdir}/usr/share/licenses/\${pkgname}/license\"
	fi
	;;
esac
}
    "
done
