debian/littlebird-tc-core.postinst
changeset 14 1267d8034336
parent 11 24417d8949b5
child 17 d6923e55cfae
--- a/debian/littlebird-tc-core.postinst	Thu Sep 01 12:28:28 2011 +0200
+++ b/debian/littlebird-tc-core.postinst	Fri Sep 02 01:13:25 2011 +0200
@@ -3,6 +3,7 @@
 # postinst script for littlebird
 #
 # see: dh_installdeb(1)
+. /usr/share/debconf/confmodule
 
 set -e
 
@@ -26,6 +27,88 @@
     chown -R :www-data "$DIR"
     chmod -R g+w "$DIR"
 
+    # Timezone in /usr/local/zend/etc/php.ini
+    f=/usr/local/zend/etc/php.ini
+    perl -pi -e 's{^;?\s*(date\.timezone\s*=).*$}{$1 "Europe/Berlin"}' $f
+
+    # not sure if this conforms to policy: changing another packages
+    # config files
+    if test -d /etc/php5/cli; then
+	echo "# linking php.ini to zend" >&2
+	( set -e
+	  cd /etc/php5/cli
+	  s=/usr/local/zend/etc/conf.php.ini
+	  if test `readlink -f php.ini` != `readlink -f $s`
+	  then
+	      rm -vf php.ini
+	      ln -vs $s php.ini
+	  fi
+	)
+    fi
+
+    if test -d "/etc/php5/conf.d"; then
+	echo "# linkin other zend inis" >&2
+	( set -e
+	  cd /etc/php5/conf.d
+	  for p in mysqli.ini curl.ini mcrypt.ini gd.ini
+	  do
+	    s=/usr/local/zend/etc/conf.d/$p
+	    if test `readlink -f $p` != `readlink -f $s`
+	    then
+		rm -vf $p
+		ln -vs $s .
+	    fi
+	  done
+	 )
+    fi
+
+
+    # apache configuration
+    db_get littlebird-tc/web/servername && servername="$RET" || true
+    db_get littlebird-tc/web/serveradmin && serveradmin="$RET" || true
+    db_get littlebird-tc/web/crt && crt="$RET" || true
+    db_get littlebird-tc/web/key && key="$RET" || true
+
+    # 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
+    fi
+
+    # tweak the config file, but just the lines following a magical
+    # debconf line
+    perl - serveradmin="$serveradmin" servername="$servername" \
+	   crt="$crt" key="$key" <<'_'
+	use strict;
+	use warnings;
+	my $mark = '# debconf:';
+	my %o;
+	foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v; }
+	open(F, "+</etc/apache2/conf.d/littlebird-tc") or die;
+        $_ = join "", <F>;
+	s|^(([ \t]*?)# debconf: (.*?){{(.*?)}}(.*?)\n).*?\n|$1$2$3$o{$4}$5\n|migs;
+	seek(F, 0, 0);
+	print(F $_);
+	truncate(F, tell F);
+	close(F);
+_
+
+    # need log dir(s)
+    ( . /etc/apache2/envvars
+      file=`perl -ne '/^\s*errorlog\s+(\S+)/i&&print "$1\n"' /etc/apache2/conf.d/littlebird-tc`
+      dir=`eval dirname "$file"`
+      mkdir -p "$dir"
+      file=`perl -ne '/^\s*customlog\s+(\S+)/i&&print "$1\n"' /etc/apache2/conf.d/littlebird-tc`
+      dir=`eval dirname "$file"`
+      mkdir -p "$dir"
+    )
+
+
+    invoke-rc.d apache2 reload 1>&1
+    echo >&2
+
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
@@ -40,6 +123,6 @@
 # dh_installdeb will replace this with shell code automatically
 # generated by other debhelper scripts.
 
-#DEBHELPER#
+
 
 exit 0