# SPDX-License-Identifier: ISC
# SPDX-URL: https://spdx.org/licenses/ISC.html
#
# Copyright (C) 2010-2012 William Pitcock <nenolod@dereferenced.org>
# Copyright (C) 2010-2012 JD Horelick <jdhore1@gmail.com>
# Copyright (C) 2012 Jilles Tjoelker <jilles@stack.nl>
# Copyright (C) 2018-2020 Aaron M. D. Jones <me@aaronmdjones.net>

include ../../extra.mk

HELP_LINGUAS = es fr ru tr

PROG = ${PACKAGE_TARNAME}-services${PROG_SUFFIX}
SRCS = main.c

include ../../buildsys.mk

CPPFLAGS += -I../../include
LDFLAGS  += -L../../libathemecore
LIBS     += -lathemecore

build: all ../../dist/atheme.conf.userserv-example ../../dist/atheme.conf.operserv-example

../../dist/atheme.conf.userserv-example: ../../dist/atheme.conf.example
	(echo '/* atheme.conf.userserv-example, autogenerated from atheme.conf.example */'; \
	sed -e 's@loadmodule "modules/nickserv/identify";@#&@' \
	  -e 's@loadmodule "modules/nickserv/ghost";@#&@' \
	  -e 's@#loadmodule "modules/nickserv/login";@loadmodule "modules/nickserv/login";@' \
	  -e 's/spam;/#spam;/' \
	  -e 's/#no_nick_ownership;/no_nick_ownership;/' \
	  -e 's/nick = "NickServ";/nick = "UserServ";/' \
	  -e 's/user = "NickServ";/user = "UserServ";/' \
	  -e 's/real = "Nickname Services";/real = "User Registration Services";/' ../../dist/atheme.conf.example) >../../dist/atheme.conf.userserv-example

../../dist/atheme.conf.operserv-example: ../../dist/atheme.conf.example
	(echo '/* atheme.conf.operserv-example, autogenerated from atheme.conf.example */'; \
	echo '/* This is for an oper services only atheme instance. */'; \
	sed -e '/^\/\* Database backend module/,/^$$/d' \
	  -e '/^\/\* NickServ module/,/^$$/d' \
	  -e '/^\/\* ChanServ module/,/^$$/d' \
	  -e '/modules\/operserv\/akill/d' \
	  -e '/modules\/operserv\/ignore/d' \
	  -e '/modules\/operserv\/soper/d' \
	  -e '/modules\/operserv\/update/d' \
	  -e '/^\/\* MemoServ module/,/^$$/d' \
	  -e '/modules\/infoserv\//s/^/#/' \
	  -e '/^\/\* SASL agent module/,/^$$/d' \
	  -e '/^\/\* GameServ module/,/^$$/d' \
	  -e '/^\/\* BotServ module/,/^$$/d' \
	  -e '/^\/\* HostServ module/,/^$$/d' \
	  -e '/^\/\* HelpServ module/,/^$$/d' \
	  -e '/^\/\* GroupServ module/,/^$$/d' \
	  -e '/modules\/xmlrpc\/account/d' \
	  -e '/modules\/xmlrpc\/channel/d' \
	  -e '/modules\/xmlrpc\/memo/d' \
	  -e 's/name = "services.int"/name = "operserv.int"/' \
	  -e 's/desc = ".*"/desc = "Atheme Operator Services"/' \
	  -e 's/numeric = "00A"/numeric = "00B"/' \
	  -e '/\/\*.*enforce_expire/,/enforce_delay =/d' \
	  -e 's/expire = .*;/expire = 1;/' \
	  -e 's/nick = "OperServ";/nick = "OperServ2";/' \
	  -e 's/nick = "Global";/nick = "Global2";/' \
	  -e 's/nick = "InfoServ";/nick = "InfoServ2";/' \
	  -e 's/spam;/#spam;/' \
	  -e 's/port = 8080/port = 8081/' ../../dist/atheme.conf.example) >../../dist/atheme.conf.operserv-example

install-extra: ../../dist/atheme.conf.userserv-example ../../dist/atheme.conf.operserv-example
	-${INSTALL} -m 755 -d ${DESTDIR}${prefix}
	-${INSTALL} -m 755 -d ${DESTDIR}${bindir}
	-${INSTALL} -m 755 -d ${DESTDIR}${sysconfdir}
	-${INSTALL} -m 755 -d ${DESTDIR}${localstatedir}
	-${INSTALL} -m 755 -d ${DESTDIR}${DOCDIR}
	-${INSTALL} -m 755 -d ${DESTDIR}${LOGDIR}
	-${INSTALL} -m 755 -d ${DESTDIR}${RUNDIR}
	-${INSTALL} -m 755 -d ${DESTDIR}${DATADIR}
	-${INSTALL} -m 755 -d ${DESTDIR}${SHAREDIR}/help
	-${INSTALL} -m 755 -d ${DESTDIR}${SHAREDIR}/email
	${INSTALL} -m 600 -c ../../dist/atheme.conf.example ${DESTDIR}${sysconfdir}
	${INSTALL} -m 644 -c ../../dist/atheme.motd.example ${DESTDIR}${sysconfdir}
	[ -r ${DESTDIR}${sysconfdir}/atheme.motd ] || ${INSTALL} -m 644 -c ../../dist/atheme.motd.example ${DESTDIR}${sysconfdir}/atheme.motd || :
	${INSTALL} -m 600 -c ../../dist/atheme.conf.userserv-example ${DESTDIR}${sysconfdir}
	${INSTALL} -m 600 -c ../../dist/atheme.conf.operserv-example ${DESTDIR}${sysconfdir}
	${INSTALL} -m 644 -c ../../dist/atheme.cron.example ${DESTDIR}${sysconfdir}
	${INSTALL} -m 644 ../../NEWS.md ${DESTDIR}${DOCDIR}/RELEASE
	(cd ../../doc; for i in *; do \
		[ -f $$i ] && ${INSTALL} -m 644 $$i ${DESTDIR}${DOCDIR}; \
		if [ -d $$i ]; then \
			cd $$i; \
			${INSTALL} -m 755 -d ${DESTDIR}${DOCDIR}/$$i; \
			for j in *; do \
				[ -f $$j ] && ${INSTALL} -m 644 $$j ${DESTDIR}${DOCDIR}/$$i; \
			done; \
			cd ..; \
		fi; \
	done)
	(cd ../../help/default; for i in *; do \
		[ -f $$i ] && ${INSTALL} -m 644 $$i ${DESTDIR}${SHAREDIR}/help; \
		if [ -d $$i ]; then \
			cd $$i; \
			${INSTALL} -m 755 -d ${DESTDIR}${SHAREDIR}/help/$$i; \
			for j in *; do \
				[ -f $$j ] && ${INSTALL} -m 644 $$j ${DESTDIR}${SHAREDIR}/help/$$i; \
			done; \
			cd ..; \
		fi; \
	done)
	(cd ../../email/default; for i in *; do \
		[ -f $$i ] && ${INSTALL} -m 644 $$i ${DESTDIR}${SHAREDIR}/email; \
		if [ -d $$i ]; then \
			cd $$i; \
			${INSTALL} -m 755 -d ${DESTDIR}${SHAREDIR}/email/$$i; \
			for j in *; do \
				[ -f $$j ] && ${INSTALL} -m 644 $$j ${DESTDIR}${SHAREDIR}/email/$$i; \
			done; \
			cd ..; \
		fi; \
	done)
	if [ ${USE_NLS} = yes ]; then \
		for lingua in ${HELP_LINGUAS}; do \
			${INSTALL} -m 755 -d ${DESTDIR}${SHAREDIR}/help/$$lingua; \
			(cd ../../help/$$lingua; for i in *; do \
				[ -f $$i ] && ${INSTALL} -m 644 $$i ${DESTDIR}${SHAREDIR}/help/$$lingua; \
				if [ -d $$i ]; then \
					cd $$i; \
					${INSTALL} -m 755 -d ${DESTDIR}${SHAREDIR}/help/$$lingua/$$i; \
					for j in *; do \
						[ -f $$j ] && ${INSTALL} -m 644 $$j ${DESTDIR}${SHAREDIR}/help/$$lingua/$$i; \
					done; \
					cd ..; \
				fi; \
			done); \
		done; \
	fi
	@echo " "
	@echo "----------------------------------------------------------------------"
	@echo ">>> Remember to cd to ${prefix} and edit your config file.";
	@echo "----------------------------------------------------------------------"
	@echo " "
