debian/littlebird-tc-core.postinst
changeset 20 2b50fdcbf09f
parent 19 dee622089472
child 23 6c2b422b8339
child 25 3b92710cb5c5
--- a/debian/littlebird-tc-core.postinst	Fri Sep 02 11:10:36 2011 +0200
+++ b/debian/littlebird-tc-core.postinst	Fri Sep 02 12:57:40 2011 +0200
@@ -67,6 +67,7 @@
 
     # apache configuration
     db_get littlebird-tc/web/servername && servername="$RET" || true
+    db_get littlebird-tc/web/serverport && serverport="$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
@@ -94,23 +95,28 @@
 	    db_go || true
 	fi
     fi
-    # permissions for the cert
-    test "$key" && {
-	chown root: "$key"
-	chmod -v go= "$key"
-    }
 
     # tweak the config file, but just the lines following a magical
     # debconf line
-    perl - serveradmin="$serveradmin" servername="$servername" \
+    perl - serveradmin="$serveradmin" servername="$servername" serverport="$serverport" \
 	   crt="$crt" key="$key" <<'_'
 	use strict;
 	use warnings;
 	my $mark = '# debconf:';
 	my %o;
-	foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v; }
+	foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v }
+	if ($o{serverport} eq "443") { 
+	    $o{serverurl} = "https://$o{servername}/";
+	    $o{listen} = "# Listen 443";
+	}
+	else { 
+	    $o{serverurl} = "https://$o{servername}:$o{serverport}/";
+	    $o{listen} = "Listen $o{serverport}";
+	}
+	
+
 	open(F, "+</etc/apache2/conf.d/littlebird-tc") or die;
-        $_ = join "", <F>;
+	$_ = join "" => <F>;
 	s|^(([ \t]*?)# debconf: (.*?){{(.*?)}}(.*?)\n).*?\n|$1$2$3$o{$4}$5\n|migs;
 	seek(F, 0, 0);
 	print(F $_);
@@ -128,6 +134,38 @@
       mkdir -p "$dir"
     )
 
+    # fix application_ini, there should be a cleaner approach
+
+    db_get littlebird-tc/db/name && dbname="$RET" || true
+    db_get littlebird-tc/db/host && dbhost="$RET" || true
+    db_get littlebird-tc/db/user && dbuser="$RET" || true
+    db_get littlebird-tc/db/pass && dbpass="$RET" || true
+    perl - dbname="$dbname" dbhost="$dbhost" dbuser="$dbuser" dbpass="$dbpass" \
+           servername="$servername" serverport="$serverport" \
+        <<'_'
+        use strict;
+        use warnings;
+        my %o; foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v }
+
+	if ($o{serverport} eq "443") { $o{serverurl} = "https://$o{servername}" } 
+	else { $o{serverurl} = "https://$o{servername}:$o{serverport}" }
+
+        open(F, "+</srv/www/littlebird/TrustCenter/application/configs/application_installation.ini")
+            or die;
+        $_ = join "" => <F>;
+        s|^(\Qresources.db.params.dbname\E\s*=).*|$1 $o{dbname}|mig;
+        s|^(\Qresources.db.params.host\E\s*=).*|$1 $o{dbhost}|mig;
+        s|^(\Qresources.db.params.username\E\s*=).*|$1 $o{dbuser}|mig;
+        s|^(\Qresources.db.params.password\E\s*=).*|$1 $o{dbpass}|mig;
+        s|^(\Qlittlebird.trustcenter.url\E\s*=).*|$1 $o{serverurl}|mig;
+        s|/opt/LittleBird/LittleBird(?:-Test)?|/srv/www/littlebird|mig;
+        seek(F, 0, 0);
+        print(F $_);
+        truncate(F, tell F);
+        close(F);
+_
+	
+
 
     db_stop || true
     a2enmod ssl