#!/bin/sh
#This script will send a buildIndex command to 
#remote metacat with docid parameter. Then metacat will build index for this docid.
#This script will have one argument - it is a text file name which contains docid list.
#The text file will look like
#nceas.1.1
#nceas.2.1
#nceas.3.1

if  [ $# -ne 1 ]
 then
    echo "USAGE: $0 docidfile"
    exit 1
fi 
echo 'Please type metacat url (It should look like "http://pacific.msi.ucsb.edu:8080/metacat/metacat")'
read metacatBaseURL
echo 'Please type KNB user name (It should look like "uid=tao,o=NCEAS,dc=ecoinformatics,dc=org")'
read username
echo 'Please type password'
read password
date
#login to metacat
loginurl="$metacatBaseURL?action=login&username=$username&password=$password"
wget -q -O - --save-cookies cookies --keep-session-cookies "$loginurl"

suffix="?action=buildindex"
metacatURL="$metacatBaseURL$suffix"

FILE=$1
# make sure file exist and readable
if [ ! -f $FILE ]; then 
  	echo "$FILE : does not exists"
  	exit 1
elif [ ! -r $FILE ]; then
  	echo "$FILE: can not read"
  	exit 2
fi


index=0
length=3
# read $FILE using the file descriptors
exec 3<&0
exec 0<$FILE
while read line
do
    if [ "$line" != "" ]
    then
      # construct metacat with given length of docid
      metacatURL="$metacatURL&docid=$line"
      index=`expr $index + 1`
	    if [ $index -eq $length ]
	    then
	       echo "here is url $metacatURL"
	       wget -q -O - --load-cookies cookies "$metacatURL"
	       index=0;
	       metacatURL="$metacatBaseURL$suffix"
	    fi
	fi		
done

#This will send out some remained docid
if [ $index -ne 0 ]
then   
    echo "here is url $metacatURL"
    wget -q -O - --load-cookies cookies "$metacatURL"
fi

exec 0<&3
date
exit 0