move loading of search module into BackupPC::Search
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 9 Jan 2011 14:56:38 +0000 (14:56 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 9 Jan 2011 14:56:38 +0000 (14:56 +0000)
bin/BackupPC_updatedb
lib/BackupPC/Search.pm
lib/BackupPC/Search/Estraier.pm

index 2290a19..9627a2b 100755 (executable)
@@ -15,18 +15,6 @@ use BackupPC::Search;
 use Cwd qw/abs_path/;
 use Data::Dump qw(dump);
 
 use Cwd qw/abs_path/;
 use Data::Dump qw(dump);
 
-our $search_module;
-BEGIN {
-       $search_module = "BackupPC::Search::Estraier";
-       $search_module = "BackupPC::Search::KinoSearch" if $ENV{KINO};
-       eval "use $search_module";
-       if ( $@ ) {
-               warn "ERROR: $search_module: $!";
-       } else {
-               warn "# using $search_module for full-text search";
-       }
-}
-
 use constant BPC_FTYPE_DIR => 5;
 use constant EST_CHUNK => 4096;
 
 use constant BPC_FTYPE_DIR => 5;
 use constant EST_CHUNK => 4096;
 
@@ -131,7 +119,7 @@ sub hest_update {
        my $offset = 0;
        my $added = 0;
 
        my $offset = 0;
        my $added = 0;
 
-       my $search = $search_module->new( $index_node_url );
+       my $search = BackupPC::Search->search_module;
 
        my $results = 0;
 
 
        my $results = 0;
 
index 742f3f2..41f4e76 100644 (file)
@@ -10,7 +10,7 @@ use vars qw(%In $MyURL);
 use Time::HiRes qw/time/;
 use XML::Writer;
 use IO::File;
 use Time::HiRes qw/time/;
 use XML::Writer;
 use IO::File;
-use BackupPC::Search::Estraier;
+use Data::Dump qw(dump);
 
 my $on_page = 100;
 my $pager_pages = 10;
 
 my $on_page = 100;
 my $pager_pages = 10;
@@ -18,11 +18,26 @@ my $pager_pages = 10;
 my $dsn = $Conf{SearchDSN};
 my $db_user = $Conf{SearchUser} || '';
 
 my $dsn = $Conf{SearchDSN};
 my $db_user = $Conf{SearchUser} || '';
 
-my $hest_node_url = $Conf{HyperEstraierIndex};
+our $search_module;
 
 
-my $dbh;
+sub search_module {
+
+       $search_module = "BackupPC::Search::Estraier";
+       $search_module = "BackupPC::Search::KinoSearch" if $ENV{KINO};
+       eval "use $search_module";
+       if ( $@ ) {
+               warn "ERROR: $search_module: $!";
+       } else {
+               warn "# using $search_module for full-text search";
+       }
 
 
+       my $bpc = BackupPC::Lib->new || die;
+       my %Conf = $bpc->Conf();
 
 
+       return $search_module->new( %Conf );
+}
+
+my $dbh;
 
 sub get_dbh {
        $dbh ||= DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );
 
 sub get_dbh {
        $dbh ||= DBI->connect($dsn, $db_user, "", { RaiseError => 1, AutoCommit => 1 } );
@@ -262,7 +277,7 @@ sub getFilesHyperEstraier($) {
        my $shareid = $param->{'search_share'};
        my ($backup_from, $backup_to, $files_from, $files_to) = dates_from_form($param);
 
        my $shareid = $param->{'search_share'};
        my ($backup_from, $backup_to, $files_from, $files_to) = dates_from_form($param);
 
-       return BackupPC::Search::Estraier->new( $hest_node_url )->search(
+       return search_module->search(
                $offset, $on_page, $param->{sort},
                $q, $shareid, $backup_from, $backup_to, $files_from, $files_to
        );
                $offset, $on_page, $param->{sort},
                $q, $shareid, $backup_from, $backup_to, $files_from, $files_to
        );
index a9f9cae..afbaaad 100644 (file)
@@ -3,11 +3,15 @@ use warnings;
 use strict;
 
 use Search::Estraier 0.04;
 use strict;
 
 use Search::Estraier 0.04;
+use Data::Dump qw(dump);
 
 my $debug = $ENV{DEBUG} || 0;
 
 sub new {
 
 my $debug = $ENV{DEBUG} || 0;
 
 sub new {
-       my ( $class, $index_node_url ) = @_;
+       my $class = shift @_;
+       my %Conf = @_;
+
+       my $index_node_url = $Conf{HyperEstraierIndex} || die "no HyperEstraierIndex in config ",dump(%Conf);
 
        warn "# using $index_node_url";
 
 
        warn "# using $index_node_url";