Bug 26265: (QA follow-up) Remove g option from regex, add few dirs
[koha-equinox.git] / rewrite-config.PL
index 91f74cb..8479e12 100644 (file)
@@ -19,6 +19,7 @@
 # 
 # 2007/11/12   Added DB_PORT and changed other keywords to reflect multi-dbms support. -fbcit
 
+use Modern::Perl;
 use Sys::Hostname;
 use Socket;
 
@@ -44,7 +45,7 @@ The following configuration keywords are available:
 
 PREFIX,
 BASE_DIR, CGI_DIR, LOG_DIR, PLUGINS_DIR, INSTALL_BASE,
-DB_TYPE, DB_HOST, DB_PORT, DB_NAME, DB_PASS, DB_USER, WEBMASTER_EMAIL, WEBSERVER_DOMAIN,
+DB_TYPE, DB_HOST, DB_PORT, DB_NAME, DB_PASS, DB_USER, DB_USE_TLS, DB_TLS_CA_CERT, DB_TLS_CLIENT_KEY, DB_TLS_CLIENT_CERT, WEBMASTER_EMAIL, WEBSERVER_DOMAIN,
 WEBSERVER_HOST, WEBSERVER_IP, WEBSERVER_PORT, WEBSERVER_PORT_LIBRARIAN, ZEBRA_PASS, ZEBRA_USER
 
 =head1 EXAMPLES
@@ -59,6 +60,8 @@ also need to override WEBSERVER_IP.
 
 =cut
 
+my $myhost;
+my $mydomain;
 if ( $myhost = $ENV{WEBSERVER_HOST} || hostname ) {
     ( $mydomain = $myhost ) =~ s/.*?\.//;
 } else {
@@ -66,6 +69,7 @@ if ( $myhost = $ENV{WEBSERVER_HOST} || hostname ) {
     $mydomain = 'localdomain';
 }
 
+my $myip;
 unless ( $myip = $ENV{WEBSERVER_IP} ) {
     my $byname = gethostbyname( $myhost )
        or die "Could not get the IP address of $myhost, DNS fault? ($!)";
@@ -74,12 +78,12 @@ unless ( $myip = $ENV{WEBSERVER_IP} ) {
 }
 
 
-$prefix = $ENV{'INSTALL_BASE'} || "/usr";
+my $prefix = $ENV{'INSTALL_BASE'} || "/usr";
 
 # These are our configuration guesses
 # Keys were extracted by
 # <grep -o '__.*__' etc/* | cut -f2 -d: | sort -u | sed -e 's/^/  "/;s/$/" => "",/'
-%configuration = (
+my %configuration = (
   "__KOHA_INSTALLED_VERSION__" => "no_version_found",
   "__LOG_DIR__" => "/var/log",
   "__PLUGINS_DIR__" => "/var/lib/koha/plugins",
@@ -89,6 +93,10 @@ $prefix = $ENV{'INSTALL_BASE'} || "/usr";
   "__DB_PORT__" => "3306",
   "__DB_USER__" => "kohaadmin",
   "__DB_PASS__" => "katikoan",
+  "__DB_USE_TLS__" => "no",
+  "__DB_TLS_CA_CERTIFICATE__" => "",
+  "__DB_TLS_CLIENT_CERTIFICATE__" => "",
+  "__DB_TLS_CLIENT_KEY__"=>"",
   "__WEBMASTER_EMAIL__" => 'webmaster@'.$mydomain,
   "__WEBSERVER_DOMAIN__" => $mydomain,
   "__WEBSERVER_HOST__" => $myhost,
@@ -103,6 +111,7 @@ $prefix = $ENV{'INSTALL_BASE'} || "/usr";
   "__ZEBRA_PASS__" => "zebrastripes",
   "__ZEBRA_USER__" => "kohauser",
   '__BACKUP_DIR__' => "$prefix/var/spool",
+  '__API_CGI_DIR__' => "$prefix/api",
   '__INTRANET_CGI_DIR__' => "$prefix/intranet/cgi-bin",
   '__INTRANET_TMPL_DIR__' => "$prefix/intranet/templates",
   '__INTRANET_WWW_DIR__' => "$prefix/intranet/www",
@@ -126,10 +135,10 @@ $prefix = $ENV{'INSTALL_BASE'} || "/usr";
   '__ZEBRA_TOKENIZER__' => 'chr',
   '__ZEBRA_TOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
   '__ZEBRA_PTOKENIZER_STMT__' => 'charmap word-phrase-utf.chr',
-  '__ZEBRA_AUTH_CFG__' => 'zebra-authorities.cfg',
-  '__ZEBRA_BIB_CFG__' => 'zebra-biblios.cfg',
-  '__AUTH_RETRIEVAL_CFG__' => 'retrieval-info-auth-grs1.xml',
-  '__BIB_RETRIEVAL_CFG__' => 'retrieval-info-bib-grs1.xml',
+  '__AUTH_RETRIEVAL_CFG__' => 'retrieval-info-auth-dom.xml',
+  '__BIB_RETRIEVAL_CFG__' => 'retrieval-info-bib-dom.xml',
+  '__ZEBRA_AUTH_CFG__' => 'zebra-authorities-dom.cfg',
+  '__ZEBRA_BIB_CFG__' => 'zebra-biblios-dom.cfg',
   "__MERGE_SERVER_HOST__" => $myhost,
   "__MERGE_SERVER_PORT__" => '11001',
   "__PAZPAR2_HOST__" => $myhost,
@@ -140,17 +149,20 @@ $prefix = $ENV{'INSTALL_BASE'} || "/usr";
   "__INSTALL_PAZPAR2__" => 'no',
   "__PAZPAR2_TOGGLE_XML_PRE__" => '<!--',
   "__PAZPAR2_TOGGLE_XML_POST__" => '-->',
-  "__AUTH_INDEX_MODE__" => 'grs1',
-  "__BIB_INDEX_MODE__" => 'grs1',
   "__RUN_DATABASE_TESTS__" => 'no',
   "__PATH_TO_ZEBRA__" => "",
-  "__USE_MEMCACHED__" => 'no',
+  "__USE_MEMCACHED__" => 'yes',
   "__MEMCACHED_SERVERS__" => "",
   "__MEMCACHED_NAMESPACE__" => "",
+  "__USE_ELASTICSEARCH__" => 'no',
+  "__ELASTICSEARCH_SERVERS__" => "localhost:9200",
+  "__ELASTICSEARCH_INDEX__" => "koha",
+  "__FONT_DIR__" => "/usr/share/fonts/truetype/dejavu",
+  "__TEMPLATE_CACHE_DIR__" => "/tmp/koha"
 );
 
 # Override configuration from the environment
-foreach $key (keys %configuration) {
+foreach my $key (keys %configuration) {
   if (defined($ENV{$key})) {
     $configuration{$key} = $ENV{$key};
   }
@@ -163,8 +175,8 @@ if ($configuration{'__INSTALL_PAZPAR2__'} eq 'yes') {
     $configuration{'__PAZPAR2_TOGGLE_XML_POST__'} = '';
 }
 
-$fname = $ARGV[0];
-$file = &read_file($fname);
+my $fname = $ARGV[0];
+my $file = &read_file($fname);
 $file =~ s/__.*?__/exists $configuration{$&} ? $configuration{$&} : $&/seg;
 
 # At this point, file is in 'blib' and by default
@@ -172,21 +184,22 @@ $file =~ s/__.*?__/exists $configuration{$&} ? $configuration{$&} : $&/seg;
 # to make it writable.  Note that stat and chmod
 # (the Perl functions) should work on Win32
 my $old_perm;
-$old_perm = (stat $fname)[2] & 07777;
-my $new_perm = $old_perm | 0200;
+$old_perm = (stat $fname)[2] & oct(7777);
+my $new_perm = $old_perm | oct(200);
 chmod $new_perm, $fname;
 
-open(OUTPUT,">$fname") || die "Can't open $fname for write: $!";
-print OUTPUT $file;
-close(OUTPUT);
+open(my $output, ">", $fname) || die "Can't open $fname for write: $!";
+print $output $file;
+close($output);
 
 chmod $old_perm, $fname;
 
 # Idea taken from perlfaq5
-sub read_file($) {
-  local(*INPUT,$/);
-  open(INPUT,$_[0]) || die "Can't open $_[0] for read";
-  my $file = <INPUT>;
+sub read_file {
+  local $/;
+  open(my $fh , '<', $_[0]) || die "Can't open $_[0] for read";
+  my $file = <$fh>;
+  close $fh;
   return $file;
 }