import of Diogenes 0.9.18
[diogenes.git] / debian / diogenes.config
diff --git a/debian/diogenes.config b/debian/diogenes.config
new file mode 100644 (file)
index 0000000..08221cb
--- /dev/null
@@ -0,0 +1,114 @@
+#!/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