From 66b955446096380d27c59fb00f6d4208b42eb800 Mon Sep 17 00:00:00 2001
From: Tom N Harris <tnharris@whoopdedo.org>
Date: Fri, 2 Feb 2007 07:35:11 +0100
Subject: [PATCH] Use new index format in bin/indexer.php

darcs-hash:20070202063511-6942e-227499f5baaedea2d8df72d156bcdb8d6d5461bc.gz
---
 bin/indexer.php | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/bin/indexer.php b/bin/indexer.php
index 769cecffe..7b4e7d197 100755
--- a/bin/indexer.php
+++ b/bin/indexer.php
@@ -11,6 +11,10 @@ require_once(DOKU_INC.'inc/indexer.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', 1);
+
 // handle options
 $short_opts = 'hcu';
 $long_opts  = array('help', 'clean', 'update');
@@ -73,14 +77,19 @@ function _index($id){
 
     // if not cleared only update changed and new files
     if(!$CLEAR){
-      $last = @filemtime(metaFN($id,'.indexed'));
-      if($last > @filemtime(wikiFN($id))) return;
+        $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();
     echo "$id... ";
     idx_addPage($id);
-    io_saveFile(metaFN($id,'.indexed'),' ');
+    io_saveFile(metaFN($id,'.indexed'),INDEXER_VERSION);
     echo "done.\n";
     _unlock();
 }
@@ -126,9 +135,15 @@ function _clearindex(){
     global $conf;
     _lock();
     echo "Clearing index... ";
-    io_saveFile($conf['cachedir'].'/word.idx','');
-    io_saveFile($conf['cachedir'].'/page.idx','');
-    io_saveFile($conf['cachedir'].'/index.idx','');
+    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");
+        }
+    }
     echo "done.\n";
     _unlock();
 }
-- 
GitLab