#! /bin/sh
#
#	This script indexes wims server resources (modules, sheets).
#	It should be run each time a module is added or modified.
#

# base directory.
test=`dirname $0`
if [ -z "$test" ]; then WIMS_HOME=..; else WIMS_HOME=$test/..; fi
cd $WIMS_HOME
WIMS_HOME=`pwd`
export mlist slist dicsort_separator dicsort_grouping
export w_translator_unknown w_dictionary w_translator_switch wims_exec_parm

cd public_html/modules
mlist=`find [EHUGR]* tool contrib incoming -name INDEX | sed 's!/INDEX$!!g' | sort`
cd $WIMS_HOME/public_html/bases/sheet
slist="`find . -name '*.def' | sed 's!^./!!g;s!.def$!!g' | sort`"
cd $WIMS_HOME

rm -f public_html/bases/site/[A-Z].?? public_html/bases/site/lists/[A-Z].?? 2>&1 >/dev/null
rm -f public_html/bases/sheet/index/* 2>&1 >/dev/null

bin/modind

cd public_html/bases/site
rm -f mkindex.log
dicsort_separator=':'
dicsort_grouping=' '
for f in [A-Z].??
do
  $WIMS_HOME/bin/dicsort $f >>mkindex.log
  mv $f.sorted $f
done

dicsort_separator=':'
dicsort_grouping=
for f in title description language weight.??
do
  $WIMS_HOME/bin/dicsort $f >>mkindex.log
  mv $f.sorted $f
done
$WIMS_HOME/bin/dicsort addr >>mkindex.log
mv addr.sorted addr
$WIMS_HOME/bin/dicsort serial >>mkindex.log
mv serial.sorted serial
n=`grep -c . addr`
echo Indexed $n modules.

wims_exec_parm=`cat popular`
w_translator_switch=leavelines
w_translator_unknown=leave
w_dictionary=serial
$WIMS_HOME/public_html/bin/translator >popular.1
$WIMS_HOME/bin/dicsort popular.1 >>mkindex.log
mv popular.1.sorted popular.1

awk -F: '{print $1}' title | uniq >lists/total

cd lists
cats=`ls [A-Z].??`
cd ..

for t in $cats
do
 w_translator_unknown=leave
 w_dictionary=pop/dic
 w_translator_switch=leaveline
 wims_exec_parm=`cat lists/$t`
 $WIMS_HOME/public_html/bin/translator | sort -n -r -k2 | head -500 >pop/$t
done

dicsort_separator=':'
dicsort_grouping=' '
cd $WIMS_HOME/public_html/bases/sheet/index
for f in ??
do
  $WIMS_HOME/bin/dicsort $f >>mkindex.log
  mv $f.sorted $f
  cnt=`grep -c . list.$f`
  echo $cnt >count.$f
  $WIMS_HOME/bin/dicsort addr.$f >>mkindex.log
  mv addr.$f.sorted addr.$f
  $WIMS_HOME/bin/dicsort serial.$f >>mkindex.log
  mv serial.$f.sorted serial.$f
  echo Indexed $cnt $f sheets.
done

dicsort_separator=':'
dicsort_grouping=
for f in title.* description.*
do
  $WIMS_HOME/bin/dicsort $f >>mkindex.log
  mv $f.sorted $f
done

$WIMS_HOME/public_html/bases/doc/.build-index
$WIMS_HOME/public_html/modules/H3/algebra/spuzzle/makepieces
$WIMS_HOME/public_html/modules/U2/algebra/qpuzzle/makepieces

