#!/bin/sh
set -e

# Install a database server for packages that require one during postinst
# but only recommend or suggest (or maybe not even this) the server
# package to allow for remote db servers.

MYSQL=
POSTGRESQL=
SQLITE3=
FUSIONFORGE=
CLIENT=
INSTALL=

case ${PIUPARTS_OBJECTS%%=*} in
	acidbase)				MYSQL=yes ;;
	auth2db)				MYSQL=yes ; CLIENT=yes ;;
	auth2db-common)				MYSQL=yes ; CLIENT=yes ;;
	auth2db-frontend)			MYSQL=yes ; CLIENT=yes ;;
	b2evolution)				MYSQL=yes ;;
	bacula-director-mysql)			MYSQL=yes ;;
	bacula-director-mysql-dbg)		MYSQL=yes ;;
	bacula-director-pgsql)			POSTGRESQL=yes ;;
	bacula-director-pgsql-dbg)		POSTGRESQL=yes ;;
	bandwidthd-pgsql)			POSTGRESQL=yes ;;
	bareos)					POSTGRESQL=yes ;;
	bareos-database-common)			POSTGRESQL=yes ;;
	bareos-database-mysql)			POSTGRESQL=yes ; MYSQL=yes ;;
	bareos-database-postgresql)		POSTGRESQL=yes ;;
	bareos-database-sqlite3)		POSTGRESQL=yes ; SQLITE3=yes ;;
	bareos-database-tools)			POSTGRESQL=yes ;;
	bareos-director)			POSTGRESQL=yes ;;
	bley)					POSTGRESQL=yes ;;
	blootbot)				MYSQL=yes ;;
	buddycloud-server)			POSTGRESQL=yes ;;
	bugzilla3)				MYSQL=yes ;;
	cacti)					MYSQL=yes ;;
	cacti-cactid)				MYSQL=yes ;;
	cacti-spine)				MYSQL=yes ;;
	chado-utils)				POSTGRESQL=yes ;;
	convirt)				MYSQL=yes ;;
	docbookwiki)				MYSQL=yes ;;
	dotclear)				MYSQL=yes ;;
	dotlrn)					POSTGRESQL=yes ;;
	drupal6)				MYSQL=yes ;;
	drupal6-mod-*)				MYSQL=yes ;;
	drupal6-thm-*)				MYSQL=yes ;;
	drupal6-trans-ru)			MYSQL=yes ;;
	drupal7)				MYSQL=yes ;;
	drupal7-mod-*)				MYSQL=yes ;;
	dtc-postfix-dovecot)			MYSQL=yes ;;
	frontaccounting)			MYSQL=yes ;;
	fossology-agents)			POSTGRESQL=yes ;;
	fusionforge-plugin-*)			FUSIONFORGE=yes ;;
	fusionforge-standard)			POSTGRESQL=yes ;;
	fusioninventory-for-glpi)		MYSQL=yes ;;
	gforge-db-postgresql)			POSTGRESQL=yes ;;
	gforge-lists-mailman)			POSTGRESQL=yes ;;
	gforge-plugin-extratabs)		POSTGRESQL=yes ;;
	gforge-plugin-mediawiki)		POSTGRESQL=yes ;;
	gforge-plugin-scmarch)			POSTGRESQL=yes ;;
	gforge-plugin-scmcvs)			POSTGRESQL=yes ;;
	gforge-plugin-scmdarcs)			POSTGRESQL=yes ;;
	gforge-plugin-scmgit)			POSTGRESQL=yes ;;
	gforge-plugin-scmhg)			POSTGRESQL=yes ;;
	gforge-web-apache2)			POSTGRESQL=yes ;;
	gforge-web-apache2-vhosts)		POSTGRESQL=yes ;;
	glance)					SQLITE3=yes ;;
	glance-api)				SQLITE3=yes ;;
	glance-common)				SQLITE3=yes ;;
	glance-registry)			SQLITE3=yes ;;
	glpi)					MYSQL=yes ;;
	gnuhealth-server)			POSTGRESQL=yes ;;
	grr)					MYSQL=yes ;;
	heat-api)				SQLITE3=yes ;;
	heat-api-cfn)				SQLITE3=yes ;;
	heat-api-cloudwatch)			SQLITE3=yes ;;
	heat-common)				SQLITE3=yes ;;
	heat-engine)				SQLITE3=yes ;;
	icinga-idoutils)			POSTGRESQL=yes ;;
	icinga-phpapi)				MYSQL=yes ;;
	icinga-web)				POSTGRESQL=yes ;;
	icinga-web-config-icinga)		POSTGRESQL=yes ;;
	icinga-web-config-icinga2-ido-mysql)	MYSQL=yes ;;
	icinga-web-config-icinga2-ido-pgsql)	POSTGRESQL=yes ;;
	icinga-web-pnp)				POSTGRESQL=yes ;;
	icinga2-ido-mysql)			MYSQL=yes ;;
	icinga2-ido-pgsql)			POSTGRESQL=yes ;;
	jclicmoodle)				POSTGRESQL=yes ;;
	jffnms)					MYSQL=yes ;;
	letodms)				MYSQL=yes ;;
	letodms-webdav)				MYSQL=yes ;;
	libchado-perl)				POSTGRESQL=yes ;;
	libdspam7-dbg)				POSTGRESQL=yes ;;
	libdspam7-drv-mysql)			MYSQL=yes ;;
	libdspam7-drv-pgsql)			POSTGRESQL=yes ;;
	mantis)					MYSQL=yes ;;
	med-bio-dev)				POSTGRESQL=yes ;;
	moodle)					POSTGRESQL=yes ; MYSQL=yes ;;
	moodle-book)				POSTGRESQL=yes ;;
	moodle-debian-edu-*)			POSTGRESQL=yes ;;
	movabletype-opensource)			SQLITE3=yes ;;
	mtop)					MYSQL=yes ;;
	mythtv-database)			MYSQL=yes ;;
	nagvis)					MYSQL=yes ;;
	ndoutils-common)			MYSQL=yes ;;
	ndoutils-nagios3-mysql)			MYSQL=yes ;;
	neutron-common)				SQLITE3=yes ;;
	neutron-server)				SQLITE3=yes ;;
	neutron-*-agent)			SQLITE3=yes ;;
	nginx-naxsi-ui)				MYSQL=yes ;;
	obs-api)				MYSQL=yes ;;
	ocsinventory-reports)			MYSQL=yes ;;
	ocsinventory-server)			MYSQL=yes ;;
	openacs)				POSTGRESQL=yes ;;
	openstack-dashboard)			SQLITE3=yes ;;
	openstack-dashboard-apache)		SQLITE3=yes ;;
	otrs)					POSTGRESQL=yes ;;
	otrs2)					POSTGRESQL=yes
						case "$PIUPARTS_DISTRIBUTION" in
							lenny*|squeeze*) MYSQL=yes ;;  #707075
						esac ;;
	pdns-backend-mysql)			MYSQL=yes ;;
	pdns-backend-pgsql)			POSTGRESQL=yes ;;
	phpbb3)					MYSQL=yes ;;
	phpbb3-l10n)				MYSQL=yes ;;
	phpgacl)				MYSQL=yes ;;
	phpmyadmin)				MYSQL=yes ;;
	phpwiki)				MYSQL=yes ;;
	pinba-engine-mysql)			MYSQL=yes ;;
	pinba-engine-mysql-5.5)			MYSQL=yes ;;
	pinba-engine-mysql-5.6)			MYSQL=yes ;;
	piwigo)					MYSQL=yes ;;
	pnopaste)				MYSQL=yes ;;
	poker-web)				MYSQL=yes ;;
	postfix-policyd)			MYSQL=yes ;;
	postfixadmin)				MYSQL=yes ;;
	prelude-manager)			MYSQL=yes ;;
	prewikka)				MYSQL=yes ;;
	pybit-web)				POSTGRESQL=yes ;;
	python-django-horizon)			SQLITE3=yes ;;
	python-quantum)				SQLITE3=yes ;;
	python-quantumclient)			SQLITE3=yes ;;
	quantum-common)				SQLITE3=yes ;;
	quantum-plugin-*)			SQLITE3=yes ;;
	quantum-server)				SQLITE3=yes ;;
	quantum-*-agent)			SQLITE3=yes ;;
	redmine)				MYSQL=yes ;;
	redmine-mysql)				MYSQL=yes ;;
	redmine-pgsql)				POSTGRESQL=yes ;;
	redmine-plugin-botsfilter)		MYSQL=yes ;;
	redmine-plugin-recaptcha)		MYSQL=yes ;;
	roundcube)				MYSQL=yes ;;
	roundcube-core)				MYSQL=yes ;;
	roundcube-plugins)			MYSQL=yes ;;
	roundcube-plugins-extra)		MYSQL=yes ;;
	rsyslog-mysql)				MYSQL=yes ;;
	rsyslog-pgsql)				POSTGRESQL=yes ;;
	scuttle)				MYSQL=yes ;;
	semanticscuttle)			MYSQL=yes ;;
	serendipity)				MYSQL=yes ;;
	simba)					MYSQL=yes ;;
	spotweb)				MYSQL=yes ;;
	sshproxy-backend-mysql)			MYSQL=yes ;;
	steam)					MYSQL=yes ;;
	sympa)					MYSQL=yes ;;
	tango-accesscontrol)			MYSQL=yes ;;
	tango-accesscontrol-dbg)		MYSQL=yes ;;
	tango-db)				MYSQL=yes ;;
	tango-db-dbg)				MYSQL=yes ;;
	textpattern)				MYSQL=yes ;;
	torrentflux)				MYSQL=yes ;;
	tt-rss)					MYSQL=yes ;;
	tuskar)					SQLITE3=yes ;;
	tuskar-api)				SQLITE3=yes ;;
	tuskar-common)				SQLITE3=yes ;;
	tuskar-manager)				SQLITE3=yes ;;
	typo3-dummy)				MYSQL=yes ;;
	ukolovnik)				MYSQL=yes ;;
	webcalendar)				MYSQL=yes ;;
	webissues-server)			MYSQL=yes ;;
	websimba)				MYSQL=yes ;;
	wims-moodle)				POSTGRESQL=yes ;;
	zabbix-frontend-php)			MYSQL=yes ;;
	zabbix-proxy-mysql)			MYSQL=yes ;;
	zabbix-proxy-pgsql)			POSTGRESQL=yes ;;
	zabbix-server-mysql)			MYSQL=yes ;;
	zabbix-server-pgsql)			POSTGRESQL=yes ;;
esac

if [ "$FUSIONFORGE" = "yes" ]; then
	case "$PIUPARTS_DISTRIBUTION" in
		wheezy*|jessie|jessie/updates|jessie-updates|jessie-proposed-updates)
			POSTGRESQL=yes
			;;
		*)
			INSTALL="$INSTALL fusionforge-db-local"
			;;
	esac
fi

if [ "$MYSQL" = "yes" ]; then
	case "$PIUPARTS_DISTRIBUTION" in
		lenny*|squeeze*|wheezy*|jessie*)
			INSTALL="$INSTALL mysql-server ${CLIENT:+mysql-client}"
			;;
		*)
			INSTALL="$INSTALL default-mysql-server ${CLIENT:+default-mysql-client}"
			;;
	esac
fi

if [ "$POSTGRESQL" = "yes" ]; then
	INSTALL="$INSTALL postgresql"
fi

if [ "$SQLITE3" = "yes" ]; then
	INSTALL="$INSTALL sqlite3"
fi

if [ -n "$INSTALL" ]; then
	echo "Installing ${INSTALL# }..."
	apt-get -y install $INSTALL
fi

for pgconf in /etc/postgresql/*/main/postgresql.conf
do
	test -f "$pgconf" && test -r "$pgconf" || continue
	port=$(awk '/^port/ { print $3 }' "$pgconf")
	if [ "-n" $port ] && [ "$port" != "5432" ]
	then
		echo "Non-default port in $pgconf"
	fi
done

exit 0
