summaryrefslogtreecommitdiff
path: root/lib/exe/indexer.php
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2005-08-23 18:34:50 +0200
committerAndreas Gohr <andi@splitbrain.org>2005-08-23 18:34:50 +0200
commite68c51bac31594213f669a7700b21ac8b87df959 (patch)
treedecd575b4d02a63e378f1e7b1ac133f6558b3766 /lib/exe/indexer.php
parent1a54dfab2dc24df347bedc71b1d828855d83b89f (diff)
downloadrpg-e68c51bac31594213f669a7700b21ac8b87df959.tar.gz
rpg-e68c51bac31594213f669a7700b21ac8b87df959.tar.bz2
added missing indexer file
darcs-hash:20050823163450-7ad00-5ed5b87ee1898281090bb3170498866dbc18cb24.gz
Diffstat (limited to 'lib/exe/indexer.php')
-rw-r--r--lib/exe/indexer.php55
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/exe/indexer.php b/lib/exe/indexer.php
new file mode 100644
index 000000000..fe9562d08
--- /dev/null
+++ b/lib/exe/indexer.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * DokuWiki indexer
+ *
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+
+if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
+require_once(DOKU_INC.'inc/init.php');
+require_once(DOKU_INC.'inc/indexer.php');
+//close session
+session_write_close();
+
+
+$ID = cleanID($_REQUEST['id']);
+if(!$ID) sendGIF();
+
+// check if indexing needed
+$last = @filemtime(metaFN($ID,'.indexed'));
+if($last > @filemtime(wikiFN($ID))) sendGIF();
+
+// keep running
+@ignore_user_abort(true);
+
+// try to aquire a lock
+$lock = $conf['lockdir'].'/_indexer.lock';
+while(!@mkdir($lock)){
+ if(time()-@filemtime($lock) > 60*5){
+ // looks like a stale lock - remove it
+ @rmdir($lock);
+ }else{
+ sendGIF();
+ }
+}
+
+// do the work
+idx_addPage($ID);
+
+// we're finished
+io_saveFile(metaFN($id,'.indexed'),'');
+@rmdir($lock);
+sendGIF();
+
+/**
+ * Just send a 1x1 pixel blank gif to the browser and exit
+ */
+function sendGIF(){
+ header('Content-Type: image/gif');
+ print base64_decode('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7');
+ exit;
+}
+
+//Setup VIM: ex: et ts=4 enc=utf-8 :
+?>