tsearch2-driver-install-procs.tcl

tsearch2 search engine driver installation procedures

Location:
packages/tsearch2-driver/tcl/tsearch2-driver-install-procs.tcl
Created:
2004-06-05
Author:
Dave Bauer <dave@thedesignexperience.org>
CVS Identification:
$Id: tsearch2-driver-install-procs.tcl,v 1.9.2.4 2021/04/30 17:42:53 antoniop Exp $

Procedures in this file

Detailed information

tsearch2_driver::install::before_uninstall (private)

 tsearch2_driver::install::before_uninstall

Remove FtsEngineDriver service contract implementation

Partial Call Graph (max 5 caller/called nodes):
%3 acs_sc::impl::delete acs_sc::impl::delete (public) tsearch2_driver::install::before_uninstall tsearch2_driver::install::before_uninstall tsearch2_driver::install::before_uninstall->acs_sc::impl::delete

Testcases:
No testcase defined.

tsearch2_driver::install::package_install (private)

 tsearch2_driver::install::package_install

Installation callback for tsearch2 search engine driver

Error:
Author:
Dave Bauer <dave@thedesignexperience.org>
Created:
2004-06-05

Partial Call Graph (max 5 caller/called nodes):
%3 tsearch2_driver::install::register_fts_impl tsearch2_driver::install::register_fts_impl (private) tsearch2_driver::install::package_install tsearch2_driver::install::package_install tsearch2_driver::install::package_install->tsearch2_driver::install::register_fts_impl

Testcases:
No testcase defined.

tsearch2_driver::install::preinstall_checks (private)

 tsearch2_driver::install::preinstall_checks

Make sure postgresql_contrib and tsearch are installed before allowing the installation of tsearch2_package

Author:
Hamilton Chua <hchua@8tons.dyndns.biz>
Created:
2004-07-02

Partial Call Graph (max 5 caller/called nodes):
%3 ad_script_abort ad_script_abort (public) db_0or1row db_0or1row (public) db_source_sql_file db_source_sql_file (public) tsearch2_driver::install::preinstall_checks tsearch2_driver::install::preinstall_checks tsearch2_driver::install::preinstall_checks->ad_script_abort tsearch2_driver::install::preinstall_checks->db_0or1row tsearch2_driver::install::preinstall_checks->db_source_sql_file

Testcases:
No testcase defined.

tsearch2_driver::install::register_fts_impl (private)

 tsearch2_driver::install::register_fts_impl

Register FtsEngineDriver service contract implementation

Returns:
Error:
Author:
Dave Bauer <dave@thedesignexperience.org>
Created:
2004-06-05

Partial Call Graph (max 5 caller/called nodes):
%3 tsearch2_driver::install::package_install tsearch2_driver::install::package_install (private) tsearch2_driver::install::register_fts_impl tsearch2_driver::install::register_fts_impl tsearch2_driver::install::package_install->tsearch2_driver::install::register_fts_impl acs_sc::impl::new_from_spec acs_sc::impl::new_from_spec (public) tsearch2_driver::install::register_fts_impl->acs_sc::impl::new_from_spec

Testcases:
No testcase defined.
[ hide source ]

Content File Source

ad_library {

    tsearch2 search engine driver installation procedures

    @author Dave Bauer (dave@thedesignexperience.org)
    @creation-date 2004-06-05
    @cvs-id $Id: tsearch2-driver-install-procs.tcl,v 1.9.2.4 2021/04/30 17:42:53 antoniop Exp $
}

namespace eval tsearch2_driver::install {}


d_proc -private tsearch2_driver::install::preinstall_checks {

} {

    Make sure postgresql_contrib and tsearch are installed
    before allowing the installation of tsearch2_package

    @author Hamilton Chua (hchua@8tons.dyndns.biz)
    @creation-date 2004-07-02

} {

    ns_log Notice " ********** STARTING BEFORE-INSTALL CALLBACK ****************"

    # check if tsearch2 is installed
    # in psql we do this by checking the presence of a data type tsvector
    # select typname from pg_type where typename='tsvector';

    if { [db_0or1row tsearch_compile_check {
        select distinct(typname) from pg_type where typname='tsvector'
    }] } {
        # if tsearch is installed
        ns_log Notice "******* Tsearch2 is compiled and installed. ***********"
        # continue with installation
    } else {

        # tsearch not installed
        ns_log Notice "******* Tsearch2 is not installed. ***********"

        # RPM, Debian, source default locations
        set locs [list "/usr/share/pgsql/contrib/tsearch2.sql" \
                      "/usr/local/pgsql/contrib/tsearch2.sql" \
                      "/usr/local/pgsql/share/contrib/tsearch2.sql" \
                      "/usr/share/postgresql/contrib/tsearch2.sql"]
        foreach loc $locs {
            if { [file exists $loc] } {
                set sql_file_loc $loc
                break
            }
        }
        # Check if we've found it, run the SQL file
        if { [info exists sql_file_loc] && $sql_file_loc ne "" } {
            # we found tsearch2.sql let's run it
            db_source_sql_file $sql_file_loc
        } else {
            # we could not find tserach2.sql, abort the install
            ns_log Notice "************************************************"
            ns_log Notice "********* Can't locate tsearch2.sql. ***********"
            ns_log Notice "********* Install tsearch2.sql manually ********"
            ns_log Notice "************************************************"
            ad_script_abort
        }

    }
    ns_log Notice " ********** ENDING BEFORE-INSTALL CALLBACK ****************"

}

d_proc -private tsearch2_driver::install::package_install {
} {

    Installation callback for tsearch2 search engine driver

    @author Dave Bauer (dave@thedesignexperience.org)
    @creation-date 2004-06-05

    @error
} {
    tsearch2_driver::install::register_fts_impl
}

d_proc -private tsearch2_driver::install::register_fts_impl {
} {

    Register FtsEngineDriver service contract implementation
    @author Dave Bauer (dave@thedesignexperience.org)
    @creation-date 2004-06-05

    @return

    @error
} {

    set spec {
        name "tsearch2-driver"
        aliases {
            search tsearch2::search
            index tsearch2::index
            unindex tsearch2::unindex
            update_index tsearch2::index
            summary tsearch2::summary
            info tsearch2::driver_info
        }
        contract_name "FtsEngineDriver"
        owner "tsearch2-driver"
    }

    acs_sc::impl::new_from_spec -spec $spec

}

d_proc -private tsearch2_driver::install::before_uninstall {
} {
    Remove FtsEngineDriver service contract implementation
} {
    acs_sc::impl::delete \
        -contract_name "FtsEngineDriver" \
        -impl_name "tsearch2-driver"
}

#
# Local variables:
#    mode: tcl
#    tcl-indent-level: 4
#    indent-tabs-mode: nil
# End: