Koha/t/db_dependent/zebra_config.pl
Tomas Cohen Arazi 5666ed77a3 Bug 11499: UT: Make zebra_setup.pl correctly set indexing mode
By adding the relevant environment variables to the script the generated
koha-conf.xml file for the unit tests is correct now.

Test plan:
- Verify that tests pass now:
  $ prove -v t/db_dependent/Search.t 2> /dev/null | grep 11499

Sponsored-by: Universidad Nacional de Cordoba
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes unit test, koha-qa.pl

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
2014-01-10 15:42:23 +00:00

73 lines
2.5 KiB
Perl
Executable file

#!/usr/bin/perl
use Modern::Perl;
use File::Copy;
use File::Path qw(make_path);
use File::Find;
use File::Basename;
use File::Spec;
my $source = File::Spec->rel2abs('.');
my $destination = $ARGV[0];
my $marc_type = $ARGV[1] || 'marc21';
my $indexing_mode = $ARGV[2] || 'grs1';
$ENV{__BIB_INDEX_MODE__} = $indexing_mode;
$ENV{__AUTH_INDEX_MODE__} = $indexing_mode;
$ENV{__ZEBRA_MARC_FORMAT__} = $marc_type;
if ($indexing_mode eq 'dom') {
$ENV{__ZEBRA_BIB_CFG__} = 'zebra-biblios-dom.cfg';
$ENV{__BIB_RETRIEVAL_CFG__} = 'retrieval-info-bib-dom.xml';
$ENV{__ZEBRA_AUTH_CFG__} = 'zebra-authorities-dom.cfg';
$ENV{__AUTH_RETRIEVAL_CFG__} = 'retrieval-info-auth-dom.xml';
} else {
$ENV{__ZEBRA_BIB_CFG__} = 'zebra-biblios.cfg';
$ENV{__BIB_RETRIEVAL_CFG__} = 'retrieval-info-bib-grs1.xml';
$ENV{__ZEBRA_AUTH_CFG__} = 'zebra-authorities.cfg';
$ENV{__AUTH_RETRIEVAL_CFG__} = 'retrieval-info-auth-grs1.xml';
}
make_path("$destination/var/lock/zebradb");
make_path("$destination/var/lock/zebradb/biblios");
make_path("$destination/var/lock/zebradb/authorities");
make_path("$destination/var/lib/zebradb");
make_path("$destination/var/lib/zebradb/biblios");
make_path("$destination/var/lib/zebradb/biblios/key");
make_path("$destination/var/lib/zebradb/biblios/register");
make_path("$destination/var/lib/zebradb/biblios/shadow");
make_path("$destination/var/lib/zebradb/biblios/tmp");
make_path("$destination/var/lib/zebradb/authorities");
make_path("$destination/var/lib/zebradb/authorities/key");
make_path("$destination/var/lib/zebradb/authorities/register");
make_path("$destination/var/lib/zebradb/authorities/shadow");
make_path("$destination/var/lib/zebradb/authorities/tmp");
make_path("$destination/var/run/zebradb");
$ENV{'INSTALL_BASE'} = $destination;
$ENV{'__INSTALL_BASE__'} = $destination;
my @files = ( "$source/etc/koha-conf.xml",
"$source/etc/searchengine/queryparser.yaml",
);
find(sub { push @files, $File::Find::name if ( -f $File::Find::name ); }, "$source/etc/zebradb");
foreach my $file (@files) {
my $target = "$file";
$target =~ s#$source#$destination#;
$target =~ s#etc/zebradb#etc/koha/zebradb#;
unlink($target);
make_path(dirname($target));
copy("$file", "$target");
system("perl $source/rewrite-config.PL $target");
if ($file =~ m/xml/) {
replace("$target", "$destination/intranet/templates", "$source/koha-tmpl/intranet-tmpl");
}
}
sub replace {
my ($file, $pattern, $replacement) = @_;
system("sed -i -e 's#$pattern#$replacement#' $file");
}