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

EAPI=8

# ebuild generated by hackport 0.8.4.0.9999

CABAL_FEATURES="lib profile haddock hoogle hscolour"
inherit haskell-cabal

DESCRIPTION="A library for writing discord bots in haskell"
HOMEPAGE="https://github.com/simmsb/calamity"

LICENSE="MIT"
SLOT="0/${PV}"
KEYWORDS="~amd64"

CABAL_CHDEPS=(
	'aeson                 >=2.0     && <2.2'  'aeson                 >=2.2     && <2.3'
	'text                  >=1.2     && <2.1'  'text                  >=2.0 && <2.2'
	'websockets            >=0.12    && <0.13' 'websockets            >=0.12    && <0.14'
	'http-api-data         >=0.4.3   && <0.6'  'http-api-data         >=0.4.3   && <0.7'
)

RDEPEND=">=dev-haskell/aeson-2.2:=[profile?] <dev-haskell/aeson-2.3:=[profile?]
	>=dev-haskell/aeson-optics-1.2:=[profile?] <dev-haskell/aeson-optics-2:=[profile?]
	>=dev-haskell/async-2.2:=[profile?] <dev-haskell/async-3:=[profile?]
	>=dev-haskell/calamity-commands-0.4:=[profile?] <dev-haskell/calamity-commands-0.5:=[profile?]
	>=dev-haskell/colour-2.3.5:=[profile?] <dev-haskell/colour-2.4:=[profile?]
	>=dev-haskell/concurrent-extra-0.7:=[profile?] <dev-haskell/concurrent-extra-0.8:=[profile?]
	>=dev-haskell/crypton-connection-0.2.6:=[profile?] <dev-haskell/crypton-connection-0.4:=[profile?]
	>=dev-haskell/crypton-x509-system-1.6.6:=[profile?] <dev-haskell/crypton-x509-system-1.7:=[profile?]
	>=dev-haskell/data-default-class-0.1:=[profile?] <dev-haskell/data-default-class-0.2:=[profile?]
	>=dev-haskell/data-flags-0.0.3:=[profile?] <dev-haskell/data-flags-0.1:=[profile?]
	>=dev-haskell/deque-0.4:=[profile?] <dev-haskell/deque-0.5:=[profile?]
	>=dev-haskell/df1-0.4:=[profile?] <dev-haskell/df1-0.5:=[profile?]
	>=dev-haskell/di-core-1.0.4:=[profile?] <dev-haskell/di-core-1.1:=[profile?]
	>=dev-haskell/di-polysemy-0.2:=[profile?] <dev-haskell/di-polysemy-0.3:=[profile?]
	>=dev-haskell/focus-1.0:=[profile?] <dev-haskell/focus-2:=[profile?]
	>=dev-haskell/hashable-1.2:=[profile?] <dev-haskell/hashable-2:=[profile?]
	>=dev-haskell/http-api-data-0.4.3:=[profile?] <dev-haskell/http-api-data-0.7:=[profile?]
	>=dev-haskell/http-client-0.5:=[profile?] <dev-haskell/http-client-0.8:=[profile?]
	>=dev-haskell/http-date-0.0.8:=[profile?] <dev-haskell/http-date-0.1:=[profile?]
	>=dev-haskell/http-types-0.12:=[profile?] <dev-haskell/http-types-0.13:=[profile?]
	>=dev-haskell/megaparsec-8:=[profile?] <dev-haskell/megaparsec-10:=[profile?]
	>=dev-haskell/mime-types-0.1:=[profile?] <dev-haskell/mime-types-0.2:=[profile?]
	>=dev-haskell/optics-0.4.1:=[profile?] <dev-haskell/optics-0.5:=[profile?]
	>=dev-haskell/polysemy-1.5:=[profile?] <dev-haskell/polysemy-2:=[profile?]
	>=dev-haskell/polysemy-plugin-0.3:=[profile?] <dev-haskell/polysemy-plugin-0.5:=[profile?]
	>=dev-haskell/random-1.2:=[profile?] <dev-haskell/random-1.3:=[profile?]
	>=dev-haskell/reflection-2.1:=[profile?] <dev-haskell/reflection-3:=[profile?]
	>=dev-haskell/req-3.9.2:=[profile?] <dev-haskell/req-3.14:=[profile?]
	>=dev-haskell/safe-exceptions-0.1:=[profile?] <dev-haskell/safe-exceptions-2:=[profile?]
	>=dev-haskell/scientific-0.3:=[profile?] <dev-haskell/scientific-0.4:=[profile?]
	>=dev-haskell/stm-chans-3.0:=[profile?] <dev-haskell/stm-chans-4:=[profile?]
	>=dev-haskell/stm-containers-1.1:=[profile?] <dev-haskell/stm-containers-2:=[profile?]
	>=dev-haskell/text-2.0:=[profile?] <dev-haskell/text-2.2:=[profile?]
	>=dev-haskell/text-show-3.8:=[profile?] <dev-haskell/text-show-4:=[profile?]
	>=dev-haskell/tls-1.7:=[profile?] <dev-haskell/tls-2:=[profile?]
	>=dev-haskell/typerep-map-0.5:=[profile?] <dev-haskell/typerep-map-0.7:=[profile?]
	>=dev-haskell/unagi-chan-0.4:=[profile?] <dev-haskell/unagi-chan-0.5:=[profile?]
	>=dev-haskell/unboxing-vector-0.2:=[profile?] <dev-haskell/unboxing-vector-0.3:=[profile?]
	>=dev-haskell/unordered-containers-0.2:=[profile?] <dev-haskell/unordered-containers-0.3:=[profile?]
	>=dev-haskell/vector-0.12:=[profile?] <dev-haskell/vector-0.14:=[profile?]
	>=dev-haskell/websockets-0.12:=[profile?] <dev-haskell/websockets-0.14:=[profile?]
	>=dev-lang/ghc-8.10.6:=
"
DEPEND="${RDEPEND}
	>=dev-haskell/cabal-3.2.1.0
"

PATCHES=(
	"${FILESDIR}/mtl23.patch"
)

src_prepare() {
	haskell-cabal_src_prepare
	sed -i 's/Aeson.KeyValue kv/Aeson.KeyValue e kv/g' "${S}/Calamity/Internal/Utils.hs" || die
}

src_install() {
	# no idea, dirty hack...
	sed -i 's/-fplugin=Polysemy.Plugin//g' "${S}/calamity.cabal" || die
	haskell-cabal_src_install || die
}