X-Git-Url: http://git.equinoxoli.org/?p=koha-equinox.git;a=blobdiff_plain;f=rewrite-config.PL;h=8b886847f3de44536b043b37c00b9671115c59b4;hp=9821390850696427e557e2df439791c394a387ef;hb=HEAD;hpb=8a5e2f271e703709ae0ed09b5e5752c17718ac65 diff --git a/rewrite-config.PL b/rewrite-config.PL index 9821390..8479e12 100644 --- a/rewrite-config.PL +++ b/rewrite-config.PL @@ -2,24 +2,24 @@ # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . # # Current maintainer MJR http://mjr.towers.org.uk/ -# See http://www.koha.org/wiki/?page=KohaInstaller # # 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,8 +44,8 @@ guesses worked out by the script. The following configuration keywords are available: PREFIX, -BASE_DIR, CGI_DIR, LOG_DIR, -DB_TYPE, DB_HOST, DB_PORT, DB_NAME, DB_PASS, DB_USER, WEBMASTER_EMAIL, WEBSERVER_DOMAIN, +BASE_DIR, CGI_DIR, LOG_DIR, PLUGINS_DIR, INSTALL_BASE, +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 @@ -60,59 +60,146 @@ also need to override WEBSERVER_IP. =cut -$myhost = hostname(); -$mydomain = $myhost; -$mydomain =~ s/^.*?\.//; -# This is set here to rescue systems with broken DNS -$myip = $ENV{'WEBSERVER_IP'} || inet_ntoa(scalar gethostbyname($myhost||'localhost')) || die "Cannot get our own IP address: DNS fault?"; -$prefix = $ENV{'PREFIX'} || "/usr"; +my $myhost; +my $mydomain; +if ( $myhost = $ENV{WEBSERVER_HOST} || hostname ) { + ( $mydomain = $myhost ) =~ s/.*?\.//; +} else { + $myhost = 'localhost'; + $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? ($!)"; + $myip = inet_ntoa $byname + or die "can't inet_ntoa ($!)"; +} + + +my $prefix = $ENV{'INSTALL_BASE'} || "/usr"; # These are our configuration guesses # Keys were extracted by # "",/' -%configuration = ( - "__BASE_DIR__" => ($ENV{'INSTALLSITELIB'} || sprintf($prefix."/local/lib/perl/%vd",$^V))."/koha", - # Corrected to match Debian Perl req's.... -fbcit - "__CGI_DIR__" => $prefix."/lib/cgi-bin/koha", +my %configuration = ( + "__KOHA_INSTALLED_VERSION__" => "no_version_found", "__LOG_DIR__" => "/var/log", + "__PLUGINS_DIR__" => "/var/lib/koha/plugins", "__DB_TYPE__" => "mysql", "__DB_NAME__" => "koha", "__DB_HOST__" => $myhost, "__DB_PORT__" => "3306", "__DB_USER__" => "kohaadmin", "__DB_PASS__" => "katikoan", - "__PREFIX__" => $prefix, + "__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, "__WEBSERVER_IP__" => $myip, "__WEBSERVER_PORT__" => "80", "__WEBSERVER_PORT_LIBRARIAN__" => "8080", + "__ZEBRA_SRU_HOST__" => $myhost, + "__ZEBRA_SRU_BIBLIOS_PORT__" => "9998", + "__ZEBRA_SRU_AUTHORITIES_PORT__" => "9999", + "__KOHA_USER__" => "koha", + "__KOHA_GROUP__" => "koha", "__ZEBRA_PASS__" => "zebrastripes", "__ZEBRA_USER__" => "kohauser", - "__MARCFLAVOUR__" => "marc21", + '__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", + '__OPAC_CGI_DIR__' => "$prefix/opac/cgi-bin", + '__OPAC_TMPL_DIR__' => "$prefix/opac/templates", + '__OPAC_WWW_DIR__' => "$prefix/opac/www", + '__PERL_MODULE_DIR__' => ($ENV{'INSTALLSITELIB'} || sprintf($prefix."/lib/perl5/site_perl/%vd",$^V))."/koha", + '__KOHA_CONF_DIR__' => "$prefix/etc/koha", + '__ZEBRA_CONF_DIR__' => "$prefix/etc/koha/zebradb", + '__PAZPAR2_CONF_DIR__' => "$prefix/etc/koha/pazpar2", + '__MISC_DIR__' => "$prefix/misc", + '__SCRIPT_DIR__' => "$prefix/bin", + '__SCRIPT_NONDEV_DIR__' => "$prefix/bin", + '__MAN_DIR__' => "$prefix/man", + '__DOC_DIR__' => "$prefix/doc", + '__ZEBRA_LOCK_DIR__' => "$prefix/var/lock/zebradb", + '__ZEBRA_DATA_DIR__' => "$prefix/var/lib/zebradb", + '__ZEBRA_RUN_DIR__' => "$prefix/var/run/zebradb", + '__ZEBRA_MARC_FORMAT__' => 'marc21', + '__ZEBRA_LANGUAGE__' => 'en', + '__ZEBRA_TOKENIZER__' => 'chr', + '__ZEBRA_TOKENIZER_STMT__' => 'charmap word-phrase-utf.chr', + '__ZEBRA_PTOKENIZER_STMT__' => 'charmap word-phrase-utf.chr', + '__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, + "__PAZPAR2_PORT__" => '11002', + "__INSTALL_MODE__" => 'standard', + "__INSTALL_BASE__" => '/usr/share/koha', + "__INSTALL_SRU__" => 'yes', + "__INSTALL_PAZPAR2__" => 'no', + "__PAZPAR2_TOGGLE_XML_PRE__" => '', + "__RUN_DATABASE_TESTS__" => 'no', + "__PATH_TO_ZEBRA__" => "", + "__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}; } } -$fname = $ARGV[0]; -$file = read_file($fname); -$file =~ s/__.*?__/$configuration{$&}/seg; -chmod 0644, $fname; -open(OUTPUT,">$fname") || die "Can't open $fname for write: $!"; -print OUTPUT $file; -close(OUTPUT); +# munge commenting out the PazPar2 mergeserver +# entry in koha-conf.xml if necessary +if ($configuration{'__INSTALL_PAZPAR2__'} eq 'yes') { + $configuration{'__PAZPAR2_TOGGLE_XML_PRE__'} = ''; + $configuration{'__PAZPAR2_TOGGLE_XML_POST__'} = ''; +} + +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 +# has mode a-w. Therefore, must change permission +# to make it writable. Note that stat and chmod +# (the Perl functions) should work on Win32 +my $old_perm; +$old_perm = (stat $fname)[2] & oct(7777); +my $new_perm = $old_perm | oct(200); +chmod $new_perm, $fname; + +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 = ; +sub read_file { + local $/; + open(my $fh , '<', $_[0]) || die "Can't open $_[0] for read"; + my $file = <$fh>; + close $fh; return $file; } @@ -128,4 +215,3 @@ Makefile.PL, ExtUtils::MakeMaker(3) MJ Ray mjr at phonecoop.coop =cut -