]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/SphinxSearch/scripts/index_update.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / plugins / SphinxSearch / scripts / index_update.php
1 #!/usr/bin/env php
2 <?php
3 /*
4  * StatusNet - the distributed open-source microblogging tool
5  * Copyright (C) 2009, StatusNet, Inc.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.     If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
22
23 $longoptions = array('base=', 'network');
24
25 $helptext = <<<END_OF_TRIM_HELP
26 Runs Sphinx search indexer.
27     --rotate             Have Sphinx run index update in background and
28                          rotate updated indexes into place as they finish.
29     --base               Base dir to Sphinx install
30                          (default /usr/local)
31     --network            Use status_network global config table for site list
32                          (non-functional at present)
33
34
35 END_OF_TRIM_HELP;
36
37 require_once INSTALLDIR . '/scripts/commandline.inc.php';
38 require dirname(__FILE__) . '/sphinx-utils.php';
39
40 sphinx_iterate_sites('sphinx_index_update');
41
42 function sphinx_index_update($sn)
43 {
44     $base = sphinx_base();
45
46     $baseIndexes = array('notice', 'profile');
47     $params = array();
48
49     if (have_option('rotate')) {
50         $params[] = '--rotate';
51     }
52     foreach ($baseIndexes as $index) {
53         $params[] = "{$sn->dbname}_{$index}";
54     }
55
56     $params = implode(' ', $params);
57     $cmd = "$base/bin/indexer --config $base/etc/sphinx.conf $params";
58
59     print "$cmd\n";
60     system($cmd);
61 }