debian/littlebird-tc-core.postinst
changeset 17 d6923e55cfae
parent 14 1267d8034336
child 19 dee622089472
--- a/debian/littlebird-tc-core.postinst	Fri Sep 02 01:14:40 2011 +0200
+++ b/debian/littlebird-tc-core.postinst	Fri Sep 02 10:03:28 2011 +0200
@@ -19,6 +19,8 @@
 # for details, see http://www.debian.org/doc/debian-policy/ or
 # the debian-policy package
 
+tmp=`mktemp`
+trap "rm -f $tmp" EXIT INT QUIT TERM
 
 case "$1" in
     configure)
@@ -71,10 +73,26 @@
 
     # snakeoil certificate
     if test "$crt" && test "$key" && ! test -f "$crt" && ! test -f "$key"; then
-	mkdir -p `dirname $crt`
-	mkdir -p `dirname $key`
-	openssl req -new -x509 -days 10 -subj "/O=DEMO/CN=$servername" \
-	    -out "$crt" -keyout "$key" -nodes
+	mkdir -p `dirname $crt` `dirname $key` || true
+
+	days=10
+
+	openssl req -new -x509 -days $days -subj "/O=DEMO/CN=$servername" \
+	    -out "$crt" -keyout "$key" -nodes 1>$tmp 2>&1 &
+	pid=$!
+
+	db_subst littlebird-tc/web/create-cert cn "$servername" || true
+	db_subst littlebird-tc/web/create-cert days $days || true
+	db_input medium littlebird-tc/web/create-cert || true
+	db_go || true
+
+	if ! wait $pid
+	then
+	    rm -f "$crt" "$key"
+	    cat $tmp >&2
+	    db_input critical littlebird-tc/web/cert-failed || true
+	    db_go || true
+	fi
     fi
 
     # tweak the config file, but just the lines following a magical
@@ -106,8 +124,9 @@
     )
 
 
-    invoke-rc.d apache2 reload 1>&1
-    echo >&2
+    db_stop || true
+    a2enmod ssl
+    invoke-rc.d apache2 reload >&2
 
     ;;