#! /bin/sh
#
# script to look at each example class and copy sheet in public_html/bases/sheet/$class_lang/$class_sheetadress/$class_number/
# to be execute at before each realize of a wims package.
#
# authors : F. Guerimand, bpr
# mail : fwguerima@free.fr
# this script is launch by mkindex. Do not use it directly
#
## level, lang, supervisor, email are those of the class
## if information is in the file .sheet$i, take it
## if not, take the information in the file .sheets
## if not, make something by default
whome="$1"
if [ -z "$whome" ]; then
echo "don't use this script directly. execute mkindex";
exit
fi;
target="$whome/public_html/bases/sheet";
mkdir -p $target;
cd $whome/log/classes/;
clist=`ls -d [0-9]*`;
for cls in $clist; do
if [ $cls -lt 9000 ]; then
level=`awk -F'=' '$1=="!set class_level" {print $2; exit}' ./$cls/.def`;
slevel=`awk -F'=' '$1=="!set class_slevel" {print $2; exit}' ./$cls/.def`;
lang=`awk -F'=' '$1=="!set class_lang" {print $2; exit}' ./$cls/.def`;
sup=`awk -F'=' '$1=="!set class_supervisor" {print $2; exit}' ./$cls/.def`;
email=`awk -F'=' '$1=="!set class_email" {print $2; exit}' ./$cls/.def`;
domain=`awk -F'=' '$1=="!set class_domain" {print $2; exit}' ./$cls/.def`;
sheetadress=`awk -F'=' '$1=="!set class_sheetadress" {print $2; exit}' ./$cls/.def`;
if [ -n "$sheetadress" -a -n "$lang" ]; then
cd $cls/sheets/;
# echo "--------------- $cls ; $level ; $lang"
slist=`ls .sheet[0-9]*`;
tmptarget="$target/$lang/$sheetadress/$cls";
mkdir -p $tmptarget;
for sh in $slist; do
num=${sh##.sheet};
# test if statut of sheet is non 0
statut=`awk -v no="$num" 'BEGIN{cpt=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){print($0);exit;}}' .sheets`;
if [ "$statut" != ":0" ]; then
entete=`awk '{a=substr($0,1,1); if(a==":")exit; else print($0);}' $sh`;
namesh=${sh##.};
if [ -z "`grep -r :classes/ $sh`" ]; then
if [ -n "$entete" ]; then
#First case : information is in file .sheet$i : keep it (but not title and desc)
# echo "$sh : direct copy";
title=`awk -v no="$num" 'BEGIN{cpt=0;l=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){l++;if(l==3){print($0);exit;}} }' .sheets`;
desc=`awk -v no="$num" 'BEGIN{cpt=0;l=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){l++;if(l==4){print($0);exit;}} }' .sheets`;
echo "$title
$desc" >$tmptarget/$namesh.def;
awk 'FNR>2{print $0}' $sh >>$tmptarget/$namesh.def;
else
#second case : information not in file .sheet$i : make it with files .sheets and .def.
dt=`perl -e 'for (@ARGV) {@S=stat($_); print scalar(localtime($S[9]))}' $sh`
dt=${dt##* };
title=`awk -v no="$num" 'BEGIN{cpt=0;l=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){l++;if(l==3){print($0);exit;}} }' .sheets`;
desc=`awk -v no="$num" 'BEGIN{cpt=0;l=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){l++;if(l==4){print($0);exit;}} }' .sheets`;
keyword=`awk -v no="$num" 'BEGIN{cpt=0;l=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){l++;if(l==6){print($0);exit;}} }' .sheets`;
domain1=`awk -v no="$num" 'BEGIN{cpt=0;l=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){l++;if(l==5){print($0);exit;}} }' .sheets`;
## if keyword is empty, take the level (only for H)
if [ ! -n "$keyword" ]; then
if [ -n "$slevel" ]; then
keyword=`echo "$slevel"`;
else
keyword=`echo "level$level"`;
fi ;
fi;
# echo "$sh : make presentation"; leave the empty line after email for description
# of the sheet in the search engine
echo "$title
$desc
??,$dt
2
$level
$domain, $domain1
$keyword
$sup
$email
" > $tmptarget/$namesh.def;
cat $sh >> $tmptarget/$namesh.def;
fi;
fi;
# else
# echo "$sh : EMPTY sheet";
fi;
done;
cd ../..;
# else
# echo "-----------------------NOTHING ---------- $cls ; $level ; $lang";
fi;
fi;
done;