kohabug 1776 - try to locate Zebra during install

If running Zebra, try to locate zebrasrv and zebraidx
so that koha-zebra-ctl.sh can point to a functioning
zebrasrv.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This commit is contained in:
Galen Charlton 2008-04-22 10:22:24 -05:00 committed by Joshua Ferraro
parent 149ece8541
commit 2fafa1424b
4 changed files with 45 additions and 1 deletions

View File

@ -411,6 +411,7 @@ my %config_defaults = (
'PAZPAR2_HOST' => 'localhost',
'PAZPAR2_PORT' => '11002',
'RUN_DATABASE_TESTS' => 'no',
'PATH_TO_ZEBRA' => '',
);
# set some default configuratio options based on OS
@ -947,6 +948,21 @@ Install the Zebra configuration files?);
$config{'INSTALL_ZEBRA'} = _get_value('INSTALL_ZEBRA', $msg, $defaults->{'INSTALL_ZEBRA'}, $valid_values, $install_log_values);
if ($config{'INSTALL_ZEBRA'} eq 'yes') {
if (defined(my $zebra_path = find_zebra())) {
$config{'PATH_TO_ZEBRA'} = $zebra_path;
print qq(
Found 'zebrasrv' and 'zebraidx' in $zebra_path.
);
} else {
print q(
Unable to find the Zebra programs 'zebrasrv' and 'zebraidx'
in your PATH or in some of the usual places. If you haven't
installed Zebra yet, please do so and run Makefile.PL again.
);
}
$msg = q(
Since you've chosen to use Zebra with Koha,
you must specify the primary MARC format of the
@ -1327,6 +1343,32 @@ sub display_configuration {
print "'dmake -x MAXLINELENGTH=300000'\n\n";
}
=head2 find_zebra
Attempt to find Zebra - check user's PATH and
a few other directories for zebrasrv and zebraidx.
FIXME: doesn't handle Win32
=cut
sub find_zebra {
my @search_dirs = map {
my $abs = File::Spec->rel2abs($_);
my ($toss, $directories);
($toss, $directories, $toss) = File::Spec->splitpath($abs, 1);
$directories;
} split /:/, $ENV{PATH};
push @search_dirs, qw(/usr/local/bin /opt/local/bin /usr/bin);
my @zebrasrv_dirs = grep { -x File::Spec->catpath('', $_, 'zebrasrv') } @search_dirs;
return unless @zebrasrv_dirs;
# verify that directory that contains zebrasrv also contains zebraidx
foreach my $dir (@zebrasrv_dirs) {
return $dir if -x File::Spec->catpath('', $dir, 'zebraidx');
}
return;
}
package MY;
# This will have to be reworked in order to accommodate Win32...

View File

@ -11,7 +11,7 @@ KOHA_CONF=__KOHA_CONF_DIR__/koha-conf.xml
RUNDIR=__ZEBRA_RUN_DIR__
LOCKDIR=__ZEBRA_LOCK_DIR__
# you may need to change this depending on where zebrasrv is installed
ZEBRASRV=/usr/bin/zebrasrv
ZEBRASRV=__PATH_TO_ZEBRA__/zebrasrv
test -f $ZEBRASRV || exit 0

View File

@ -56,3 +56,4 @@ INSTALL_SRU=__INSTALL_SRU__
INSTALL_PAZPAR2=__INSTALL_PAZPAR2__
AUTH_INDEX_MODE=__AUTH_INDEX_MODE__
RUN_DATABASE_TESTS=__RUN_DATABASE_TESTS__
PATH_TO_ZEBRA=__PATH_TO_ZEBRA__

View File

@ -126,6 +126,7 @@ $prefix = $ENV{'INSTALL_BASE'} || "/usr";
"__PAZPAR2_TOGGLE_XML_POST__" => '-->',
"__AUTH_INDEX_MODE__" => 'grs1',
"__RUN_DATABASE_TESTS__" => 'no',
"__PATH_TO_ZEBRA__" => "",
);
# Override configuration from the environment