#!/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 " 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}'