#!/bin/sh
# (c) Tero Karvinen http://iki.fi/karvinen
# Requires: swish++
# Indexes must be created manually before using searchtero

function searchindexes
{
#	for INDEXF in `locate '/swish++.index'|grep '/swish++.index$'|tr ' ' '\$INDEXESS
	# TODO: remove hardcoded string
	for INDEXF in `grep -v '^#' $HOME/.searchall-indexes`
	do
	#	echo "DEBUG: $INDEXF" 1>&2
		search --index-file="$INDEXF" $*
	done
}

function locateindexes # locate swish++ indexes if dotfile is old, write result in a dotfile
{
	INDEXES=`locate '/swish++.index' |grep '/swish++.index$'|tr '\n' ' '`
	echo -n "#" > $INDEXCACHE; date --iso=min >> $INDEXCACHE
	echo $INDEXES>>$INDEXCACHE
	echo "#List of indexes updated and stored to $INDEXCACHE."
}

if [ -z "$1" ]; then 
        echo "searchtero - Search all swish++ full text indexes." 
		echo "Copyright 2004-04-27 Tero.Karvinen atta iki.fi"
		echo "GNU General Public License v2"
		echo "Enter some search terms! Usage: search <query>"
		exit 1;
fi

PWD=`pwd`
INDEXCACHE=$HOME/.searchall-indexes
Q=$*

#find $INDEXCACHE -mmin +1
if [ -z "`find /home/tee/.searchall-indexes -mmin -1`" ]
then
	echo "#Updating list of swish++.index files..." 
	locateindexes
else
	echo "#Using cached list of index files"
fi

INDEXES=`grep -v '^#' $INDEXCACHE`

searchindexes $Q|grep -v '^#'|sort -nr |head -10|gawk '{print $2}'
#|gawk '{print $4 $5 $6 $7 $8 " " $2}'
