--- /dev/null
+#!/bin/bash -e
+
+RANDOMDEVICE=/dev/urandom
+allowed=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./
+declare -a RVAL
+
+second () {
+ echo $2
+}
+
+create-random-pw() {
+ if ! read -n 0 < $RANDOMDEVICE ; then
+ echo 1>&2 "Warning, no random device found, password might be insecure"
+ for i in 0 1 2 3 4 5 6 7; do
+ RVAL[i]=$RANDOM
+ done
+ else
+ for i in 0 1 2 3 4 5 6 7; do
+ RVAL[i]=$(second $(od -N 1 -t d $RANDOMDEVICE))
+ done
+ fi
+
+ PW=""
+ for i in 0 1 2 3 4 5 6 7; do
+ idx=$((${RVAL[i]} & 0x3F))
+ PW="${PW}${allowed:$idx:1}"
+ done
+
+ printf "%s" $PW
+}
+
+# this function comes from wwwconfig-common's apache.func script
+getwwwoption() {
+ getwwwoption=""
+ if [ -f $2 ] ; then
+ if grep $1 $2 | grep -v "#" > /dev/null 2>&1 ; then
+ getwwwoption=$(sed -ne "/^[[:space:]]*$1[[:space:]]\+/ s|[[:space:]]*$1[[:space:]]\+\([^[:space:]]\+\)[[:space:]]*$|\1|pg;" < $2)
+ fi
+ fi
+}
+
+
+# Use debconf baby
+. /usr/share/debconf/confmodule
+db_version 2.0
+db_title Diogenes
+
+db_input "low" "diogenes/welcome" || true
+db_go
+db_input "high" "diogenes/purge_removes_data" || true
+db_go
+
+### Required options no matter what ###
+db_input "high" "diogenes/webservers" || true
+db_go
+db_get "diogenes/webservers"
+webservers="$RET"
+
+# if a single webserver is selected,
+# try to get the user and group the webserver runs as
+nbsrv=0
+for i in $webservers ; do nbsrv=`expr $nbsrv + 1`; done
+
+if [ $nbsrv == 1 ]; then
+ server=$(echo $webservers | sed 's/,$//')
+ if [ -f /etc/$server/httpd.conf ]; then
+ getwwwoption User /etc/$server/httpd.conf
+ webuser=$(echo "$getwwwoption" | sed -e "q")
+ getwwwoption Group /etc/$server/httpd.conf
+ webgroup=$(echo "$getwwwoption" | sed -e "q")
+ fi
+fi
+
+if [ -z "$webuser" ]; then
+ db_input "high" "diogenes/webuser" || true
+ db_go
+else
+ db_set "diogenes/webuser" "$webuser"
+fi
+if [ -z "$webgroup" ]; then
+ db_input "high" "diogenes/webgroup" || true
+ db_go
+else
+ db_set "diogenes/webgroup" "$webgroup"
+fi
+
+db_input "high" "diogenes/databasemgr_type" || true
+db_go
+db_get "diogenes/databasemgr_type"
+dbtype="$RET"
+
+if [ "$dbtype" = "Automatic" ] ; then
+ db_input "high" "diogenes/databasemgr_server" || true
+ db_go
+ db_input "high" "diogenes/dbmyadmin" || true
+ db_go
+ db_input "critical" "diogenes/dbadmpass" || true
+ db_go
+ db_input "medium" "diogenes/database_name" || true
+ db_go
+ db_input "medium" "diogenes/database_user" || true
+ db_go
+ db_input "medium" "diogenes/database_pass" || true
+ db_go
+ db_get "diogenes/database_pass"
+ dbpass="$RET"
+ if [ "$dbpass" = "auto" ]; then
+ dbpass=$(create-random-pw)
+ elif [ "$dbpass" = "none" ]; then
+ dbpass=""
+ fi
+ db_set "diogenes/database_pass" "$dbpass"
+
+fi