diff options
Diffstat (limited to 'lib/dokuwiki/bin/indexer.php')
-rwxr-xr-x | lib/dokuwiki/bin/indexer.php | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/lib/dokuwiki/bin/indexer.php b/lib/dokuwiki/bin/indexer.php deleted file mode 100755 index 55f3608d5..000000000 --- a/lib/dokuwiki/bin/indexer.php +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/php -<?php -if ('cli' != php_sapi_name()) die(); - -ini_set('memory_limit','128M'); -if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/'); -require_once(DOKU_INC.'inc/init.php'); -require_once(DOKU_INC.'inc/common.php'); -require_once(DOKU_INC.'inc/pageutils.php'); -require_once(DOKU_INC.'inc/search.php'); -require_once(DOKU_INC.'inc/indexer.php'); -require_once(DOKU_INC.'inc/auth.php'); -require_once(DOKU_INC.'inc/cliopts.php'); -session_write_close(); - -// Version tag used to force rebuild on upgrade -// Need to keep in sync with lib/exe/indexer.php -if(!defined('INDEXER_VERSION')) define('INDEXER_VERSION', 2); - -// handle options -$short_opts = 'hcuq'; -$long_opts = array('help', 'clear', 'update', 'quiet'); -$OPTS = Doku_Cli_Opts::getOptions(__FILE__,$short_opts,$long_opts); -if ( $OPTS->isError() ) { - fwrite( STDERR, $OPTS->getMessage() . "\n"); - _usage(); - exit(1); -} -$CLEAR = false; -$QUIET = false; -foreach ($OPTS->options as $key => $val) { - switch ($key) { - case 'h': - case 'help': - _usage(); - exit; - case 'c': - case 'clear': - $CLEAR = true; - break; - case 'q': - case 'quiet': - $QUIET = true; - break; - } -} - -#------------------------------------------------------------------------------ -# Action - -if($CLEAR) _clearindex(); -_update(); - - - -#------------------------------------------------------------------------------ - -function _usage() { - print "Usage: indexer.php <options> - - Updates the searchindex by indexing all new or changed pages - when the -c option is given the index is cleared first. - - OPTIONS - -h, --help show this help and exit - -c, --clear clear the index before updating - -q, --quiet don't produce any output -"; -} - -function _update(){ - global $conf; - - // upgrade to version 2 - if (!@file_exists($conf['indexdir'].'/pageword.idx')){ - _lock(); - idx_upgradePageWords(); - _unlock(); - } - - $data = array(); - _quietecho("Searching pages... "); - search($data,$conf['datadir'],'search_allpages',array('skipacl' => true)); - _quietecho(count($data)." pages found.\n"); - - foreach($data as $val){ - _index($val['id']); - } -} - -function _index($id){ - global $CLEAR; - - // if not cleared only update changed and new files - if(!$CLEAR){ - $idxtag = metaFN($id,'.indexed'); - if(@file_exists($idxtag)){ - if(io_readFile($idxtag) >= INDEXER_VERSION){ - $last = @filemtime(metaFN($id,'.indexed')); - if($last > @filemtime(wikiFN($id))) return; - } - } - } - - _lock(); - _quietecho("$id... "); - idx_addPage($id); - io_saveFile(metaFN($id,'.indexed'),INDEXER_VERSION); - _quietecho("done.\n"); - _unlock(); -} - -/** - * lock the indexer system - */ -function _lock(){ - global $conf; - $lock = $conf['lockdir'].'/_indexer.lock'; - $said = false; - while(!@mkdir($lock, $conf['dmode'])){ - if(time()-@filemtime($lock) > 60*5){ - // looks like a stale lock - remove it - @rmdir($lock); - }else{ - if($said){ - _quietecho("."); - }else{ - _quietecho("Waiting for lockfile (max. 5 min)"); - $said = true; - } - sleep(15); - } - } - if($conf['dperm']) chmod($lock, $conf['dperm']); - if($said) _quietecho("\n"); -} - -/** - * unlock the indexer sytem - */ -function _unlock(){ - global $conf; - $lock = $conf['lockdir'].'/_indexer.lock'; - @rmdir($lock); -} - -/** - * Clear all index files - */ -function _clearindex(){ - global $conf; - _lock(); - _quietecho("Clearing index... "); - io_saveFile($conf['indexdir'].'/page.idx',''); - $dir = @opendir($conf['indexdir']); - if($dir!==false){ - while(($f = readdir($dir)) !== false){ - if(substr($f,-4)=='.idx' && - (substr($f,0,1)=='i' || substr($f,0,1)=='w')) - @unlink($conf['indexdir']."/$f"); - } - } - _quietecho("done.\n"); - _unlock(); -} - -function _quietecho($msg) { - global $QUIET; - if(!$QUIET) echo $msg; -} - -//Setup VIM: ex: et ts=2 enc=utf-8 : |