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

EAPI=8

inherit toolchain-funcs savedconfig optfeature

DESCRIPTION="Simple RSS and Atom parser"
HOMEPAGE="https://codemadness.org/sfeed-simple-feed-parser.html"
SRC_URI="https://codemadness.org/releases/${PN}/${P}.tar.gz"

LICENSE="ISC"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~hppa ~riscv ~sparc ~x86"

THEMES=( mono{,-highlight} newsboat templeos )
IUSE="+ncurses +${THEMES[@]/#/theme-}"
REQUIRED_USE="ncurses? ( ^^ ( "${THEMES[@]/#/theme-}" ) )"

DEPEND="ncurses? ( sys-libs/ncurses:= )"
RDEPEND="${DEPEND}"
BDEPEND="ncurses? ( virtual/pkgconfig )"

src_configure() {
	local name
	for name in "${THEMES[@]}"; do
		use "theme-${name}" && SFEED_THEME="${name//-/_}"
	done

	restore_config $(printf "themes/%s.h " "${THEMES[@]//-/_}")
}

src_compile() {
	local ncurses_ldflags=""
	use ncurses && ncurses_ldflags="$($(tc-getPKG_CONFIG) --libs ncurses || die)"

	emake \
		CC="$(tc-getCC)" \
		RANLIB="$(tc-getRANLIB)" \
		AR="$(tc-getAR)" \
		SFEED_CURSES="$(usev ncurses sfeed_curses)" \
		SFEED_THEME="${SFEED_THEME}" \
		SFEED_CURSES_LDFLAGS="${LDFLAGS} ${ncurses_ldflags}"
}

src_install() {
	emake \
		DESTDIR="${D}" \
		PREFIX="${EPREFIX}/usr" \
		MANPREFIX="${EPREFIX}/usr/share/man" \
		DOCPREFIX="${EPREFIX}/usr/share/doc/${PF}" \
		SFEED_CURSES="$(usev ncurses sfeed_curses)" \
		install

	save_config $(printf "themes/%s.h " "${THEMES[@]//-/_}")
}

pkg_postinst() {
	local optmsg

	if use ncurses; then
		optmsg="yanking the URL or enclosure in sfeed_curses. "
		optmsg+="See \$SFEED_YANKER to change it."
		optfeature "${optmsg}" x11-misc/xclip

		optmsg="plumbing the URL or enclosure in sfeed_curses. "
		optmsg+="See \$SFEED_PLUMBER to change it."
		optfeature "${optmsg}" x11-misc/xdg-utils
	fi

	optmsg="converting HTML content via sfeed_content. "
	optmsg+="See the ENVIRONMENT VARIABLES section in the man page to change it."
	optfeature "${optmsg}" www-client/lynx

	optmsg="fetching feeds. Used by sfeed_update as default. "
	optmsg+="See OVERRIDE FUNCTIONS section on sfeedrc manpage to change it."
	optfeature "${optmsg}" net-misc/curl
}