98 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| # Copyright 1999-2018 Gentoo Foundation
 | |
| # Distributed under the terms of the GNU General Public License v2
 | |
| 
 | |
| EAPI=6
 | |
| 
 | |
| 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
 | |
| }
 |