debian/littlebird-tc-core.postinst
changeset 20 2b50fdcbf09f
parent 19 dee622089472
child 23 6c2b422b8339
child 25 3b92710cb5c5
equal deleted inserted replaced
19:dee622089472 20:2b50fdcbf09f
    65     fi
    65     fi
    66 
    66 
    67 
    67 
    68     # apache configuration
    68     # apache configuration
    69     db_get littlebird-tc/web/servername && servername="$RET" || true
    69     db_get littlebird-tc/web/servername && servername="$RET" || true
       
    70     db_get littlebird-tc/web/serverport && serverport="$RET" || true
    70     db_get littlebird-tc/web/serveradmin && serveradmin="$RET" || true
    71     db_get littlebird-tc/web/serveradmin && serveradmin="$RET" || true
    71     db_get littlebird-tc/web/crt && crt="$RET" || true
    72     db_get littlebird-tc/web/crt && crt="$RET" || true
    72     db_get littlebird-tc/web/key && key="$RET" || true
    73     db_get littlebird-tc/web/key && key="$RET" || true
    73 
    74 
    74     # snakeoil certificate
    75     # snakeoil certificate
    92 	    cat $tmp >&2
    93 	    cat $tmp >&2
    93 	    db_input critical littlebird-tc/web/cert-failed || true
    94 	    db_input critical littlebird-tc/web/cert-failed || true
    94 	    db_go || true
    95 	    db_go || true
    95 	fi
    96 	fi
    96     fi
    97     fi
    97     # permissions for the cert
       
    98     test "$key" && {
       
    99 	chown root: "$key"
       
   100 	chmod -v go= "$key"
       
   101     }
       
   102 
    98 
   103     # tweak the config file, but just the lines following a magical
    99     # tweak the config file, but just the lines following a magical
   104     # debconf line
   100     # debconf line
   105     perl - serveradmin="$serveradmin" servername="$servername" \
   101     perl - serveradmin="$serveradmin" servername="$servername" serverport="$serverport" \
   106 	   crt="$crt" key="$key" <<'_'
   102 	   crt="$crt" key="$key" <<'_'
   107 	use strict;
   103 	use strict;
   108 	use warnings;
   104 	use warnings;
   109 	my $mark = '# debconf:';
   105 	my $mark = '# debconf:';
   110 	my %o;
   106 	my %o;
   111 	foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v; }
   107 	foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v }
       
   108 	if ($o{serverport} eq "443") { 
       
   109 	    $o{serverurl} = "https://$o{servername}/";
       
   110 	    $o{listen} = "# Listen 443";
       
   111 	}
       
   112 	else { 
       
   113 	    $o{serverurl} = "https://$o{servername}:$o{serverport}/";
       
   114 	    $o{listen} = "Listen $o{serverport}";
       
   115 	}
       
   116 	
       
   117 
   112 	open(F, "+</etc/apache2/conf.d/littlebird-tc") or die;
   118 	open(F, "+</etc/apache2/conf.d/littlebird-tc") or die;
   113         $_ = join "", <F>;
   119 	$_ = join "" => <F>;
   114 	s|^(([ \t]*?)# debconf: (.*?){{(.*?)}}(.*?)\n).*?\n|$1$2$3$o{$4}$5\n|migs;
   120 	s|^(([ \t]*?)# debconf: (.*?){{(.*?)}}(.*?)\n).*?\n|$1$2$3$o{$4}$5\n|migs;
   115 	seek(F, 0, 0);
   121 	seek(F, 0, 0);
   116 	print(F $_);
   122 	print(F $_);
   117 	truncate(F, tell F);
   123 	truncate(F, tell F);
   118 	close(F);
   124 	close(F);
   125       mkdir -p "$dir"
   131       mkdir -p "$dir"
   126       file=`perl -ne '/^\s*customlog\s+(\S+)/i&&print "$1\n"' /etc/apache2/conf.d/littlebird-tc`
   132       file=`perl -ne '/^\s*customlog\s+(\S+)/i&&print "$1\n"' /etc/apache2/conf.d/littlebird-tc`
   127       dir=`eval dirname "$file"`
   133       dir=`eval dirname "$file"`
   128       mkdir -p "$dir"
   134       mkdir -p "$dir"
   129     )
   135     )
       
   136 
       
   137     # fix application_ini, there should be a cleaner approach
       
   138 
       
   139     db_get littlebird-tc/db/name && dbname="$RET" || true
       
   140     db_get littlebird-tc/db/host && dbhost="$RET" || true
       
   141     db_get littlebird-tc/db/user && dbuser="$RET" || true
       
   142     db_get littlebird-tc/db/pass && dbpass="$RET" || true
       
   143     perl - dbname="$dbname" dbhost="$dbhost" dbuser="$dbuser" dbpass="$dbpass" \
       
   144            servername="$servername" serverport="$serverport" \
       
   145         <<'_'
       
   146         use strict;
       
   147         use warnings;
       
   148         my %o; foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v }
       
   149 
       
   150 	if ($o{serverport} eq "443") { $o{serverurl} = "https://$o{servername}" } 
       
   151 	else { $o{serverurl} = "https://$o{servername}:$o{serverport}" }
       
   152 
       
   153         open(F, "+</srv/www/littlebird/TrustCenter/application/configs/application_installation.ini")
       
   154             or die;
       
   155         $_ = join "" => <F>;
       
   156         s|^(\Qresources.db.params.dbname\E\s*=).*|$1 $o{dbname}|mig;
       
   157         s|^(\Qresources.db.params.host\E\s*=).*|$1 $o{dbhost}|mig;
       
   158         s|^(\Qresources.db.params.username\E\s*=).*|$1 $o{dbuser}|mig;
       
   159         s|^(\Qresources.db.params.password\E\s*=).*|$1 $o{dbpass}|mig;
       
   160         s|^(\Qlittlebird.trustcenter.url\E\s*=).*|$1 $o{serverurl}|mig;
       
   161         s|/opt/LittleBird/LittleBird(?:-Test)?|/srv/www/littlebird|mig;
       
   162         seek(F, 0, 0);
       
   163         print(F $_);
       
   164         truncate(F, tell F);
       
   165         close(F);
       
   166 _
       
   167 	
   130 
   168 
   131 
   169 
   132     db_stop || true
   170     db_stop || true
   133     a2enmod ssl
   171     a2enmod ssl
   134     invoke-rc.d apache2 reload >&2
   172     invoke-rc.d apache2 reload >&2