Only seed initial Debian package database if key file is available.
[onak.git] / debian / postinst
index c34d68e8e84f91854317bd19eca8e0ede57c7678..b8fa63f5ec80dc5bffb5675ad548614db8e05d75 100644 (file)
@@ -7,8 +7,24 @@ if [ "$1" = "configure" ]; then
     # Add the onak user
     adduser --system --home /var/lib/onak --no-create-home --disabled-login onak
 
-    # Take ownership of the database directory
+    #
+    # If we're using a default config and there's no onak database, create it
+    # by adding my key.
+    #
+    if grep -q "^db_dir /var/lib/onak" /etc/onak.conf &&
+            grep -q "^db_backend db4" /etc/onak.conf &&
+            [ ! -e /var/lib/onak/num_keydb -a \
+                -e /usr/share/doc/onak/noodles.key ]; then
+        zcat /usr/share/doc/onak/noodles.key | onak -b add
+    fi
+
+    # Take ownership of the database and spool directory
     chown -R onak /var/lib/onak
+    chown -R onak /var/spool/onak
+
+    # Create our logfile
+    touch /var/log/onak.log
+    chown onak /var/log/onak.log
 
     # Make the CGI tools setuid onak
     for i in /usr/lib/cgi-bin/pks/*
@@ -18,4 +34,20 @@ if [ "$1" = "configure" ]; then
             dpkg-statoverride --update --add onak root 4755 $i
         fi
     done
+
+    # If we don't have a DB backend defined, then add appropriate config
+    if ! grep -q db_backend /etc/onak.conf; then
+        echo "# Auto added on package update" >> /etc/onak.conf
+        echo "backends_dir /usr/lib/onak/backends" >> /etc/onak.conf
+        echo "db_backend db4" >> /etc/onak.conf
+    fi
+
+    # If we still have the old default mail_dir setting, fix it
+    if grep -q "mail_dir /community/pgp-keyserver/incoming" /etc/onak.conf; then
+        sed -i.bak "s/community\/pgp-keyserver\/incoming/var\/spool\/onak/" \
+               /etc/onak.conf
+    fi
+
 fi
+
+#DEBHELPER#