# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit webapp

DESCRIPTION="A free smart meter implementation with focus on data privacy"
HOMEPAGE="http://volkszaehler.org/"

MY_PN="${PN}.org"
MY_P="${MY_PN}-${PV}"

if [[ ${PV} == "9999" ]]; then
        EGIT_REPO_URI="https://github.com/volkszaehler/${MY_PN}"
        inherit git-r3
        KEYWORDS=""
else
        SRC_URI="https://github.com/volkszaehler/${PN}/archive/${PV} -> ${MY_P}"
        KEYWORDS="~amd64 ~x86"
fi

LICENSE="GPL-3"

RDEPEND="virtual/httpd-php
	dev-lang/php[cli,xml]
	dev-php/composer
	dev-php/doctrine
	dev-php/jpgraph
	dev-php/pecl-apcu
	dev-php/psr-log
	|| ( dev-lang/php[apache2] dev-lang/php[fpm] )
	postgres? ( dev-lang/php[postgres] )
	mysql? ( || ( dev-lang/php[mysql] dev-lang/php[mysqli] ) )
	vzlogger? ( sci-electronics/vzlogger )"

need_httpd_cgi

IUSE="+mysql postgres +vzlogger"

src_compile() {
	default

	composer install --no-dev
	composer dumpautoload
}

src_install() {
	webapp_src_preinst

	local docs="LICENSE README.md bin/README.md misc/controller/README"
	dodoc ${docs}
	rm -rf ${docs}

	insinto "${MY_HTDOCSDIR}"
	doins -r .

	webapp_configfile "${MY_HTDOCSDIR}"/etc/volkszaehler.conf.template.php
	webapp_configfile "${MY_HTDOCSDIR}"/etc/middleware.json
	webapp_configfile "${MY_HTDOCSDIR}"/etc/dbcopy.json

	webapp_src_install
}

pkg_postinst() {
	webapp_pkg_postinst

	local PASSWORD=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)

	echo
	einfo "If this is a first time install, you have to configure your"
	einfo "volkszaehler instance."
	echo
	einfo "For MySQL, you have to run:"
	echo
	echo "	mysql -uroot -p"
	echo "	CREATE USER 'volkszaehler'@'localhost' IDENTIFIED BY '$PASSWORD';"
	echo "	CREATE DATABASE IF NOT EXISTS \`volkszaehler\`;"
	echo "	GRANT select, update, insert ON volkszaehler.* TO volkszaehler@localhost;"
	echo "	FLUSH PRIVILEGES;"
	echo "	QUIT;"
	echo
	echo "	cp -a /var/www/localhost/htdocs/${PN}/etc/volkszaehler.conf.template.php \\"
	echo "	  /var/www/localhost/htdocs/${PN}/etc/volkszaehler.conf.php"
	echo "	sed \"s/\([[:space:]+]\)= 'vz';/\1= 'volkszaehler';/\" \\"
	echo "	  -i /var/www/localhost/htdocs/${PN}/etc/volkszaehler.conf.php";
	echo "	sed \"s/\([[:space:]+]\)= 'demo';/\1= '$PASSWORD';/\" \\"
	echo "	  -i /var/www/localhost/htdocs/${PN}/etc/volkszaehler.conf.php";
	echo
	echo "	cd /var/www/localhost/htdocs/${PN}"
	echo "	php bin/doctrine orm:schema-tool:create --dump-sql > misc/sql/database.sql"
	echo "	cat database.sql | mysql -uroot volkszaehler -p"
	echo
	einfo "Additionally, you need to configure your webserver."
	einfo "Consult https://wiki.volkszaehler.org/software/middleware/installation for details."
	echo
}