Subversion Repositories wimsdev

Rev

Rev 5075 | Rev 6963 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #! /bin/sh
  2. #
  3. # script to look at each example class and copy sheet in public_html/bases/sheet/$class_lang/$class_level/$class_number/
  4. # to be execute at before each realize of a wims package.
  5. #
  6. # authors : F. Guerimand
  7. # mail : fwguerima@free.fr
  8. # this script is launch by mkindex. Don't use it directly
  9. #
  10.  
  11. whome="$1"
  12. if [ -z "$whome" ]; then
  13.  echo "don't use this script directly. execute mkindex";
  14.  exit
  15. fi;
  16. target="$whome/public_html/bases/sheet";
  17. cd $whome/log/classes/;
  18. clist=`ls -d [0-9]*`;
  19. for cls in $clist; do
  20.  if [ $cls -lt 9000 ]; then
  21.   level=`awk -F'=' '$1=="!set class_level" {print $2; exit}' ./$cls/.def`;
  22.   slevel=`awk -F'=' '$1=="!set class_slevel" {print $2; exit}' ./$cls/.def`;
  23.   lang=`awk -F'=' '$1=="!set class_lang" {print $2; exit}' ./$cls/.def`;
  24.   sup=`awk -F'=' '$1=="!set class_supervisor" {print $2; exit}' ./$cls/.def`;
  25.   email=`awk -F'=' '$1=="!set class_email" {print $2; exit}' ./$cls/.def`;
  26.   if [ -n "$level" -a -n "$lang" ]; then
  27.    cd $cls/sheets/;
  28.   # echo "--------------- $cls ; $level ; $lang"
  29.    slist=`ls .sheet[0-9]*`;
  30.    tmptarget="$target/$lang/$level/$cls";
  31.    mkdir -p $tmptarget;
  32.    for sh in $slist; do
  33.     num=${sh##.sheet};
  34.     # test if statut of sheet is non 0
  35.     statut=`awk -v no="$num" 'BEGIN{cpt=0;} {a=substr($0,1,1); if(a==":")cpt++; if(cpt==no){print($0);exit;}}' .sheets`;
  36.     if [ "$statut" != ":0" ]; then
  37.      entete=`awk '{a=substr($0,1,1); if(a==":")exit; else print($0);}' $sh`;
  38.      namesh=${sh##.};
  39.      if [ -n "$entete" ]; then
  40.       #First case : information is in file .sheet$i : keep it (but not title and desc)
  41.      # echo "$sh : direct copy";
  42.       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`;
  43.       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`;
  44.       echo "$title
  45. $desc" >$tmptarget/$namesh.def;
  46.       awk 'FNR>2{print $0}' $sh >>$tmptarget/$namesh.def;
  47.      else
  48.       #second case : information not in file .sheet$i : make it with files .sheets and .def.
  49.       dt=`perl -e 'for (@ARGV) {@S=stat($_); print scalar(localtime($S[9]))}' $sh`
  50.       dt=${dt##* };
  51.       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`;
  52.       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`;
  53.       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`;
  54.       ## if keyword is empty, take the level (only for H)
  55.       if [ ! -n "$keyword" ]; then
  56.        if [ -n "$slevel" ]; then
  57.         keyword=`echo "$slevel"`;
  58.        else
  59.         keyword=`echo "$level"`;
  60.        fi ;
  61.       fi;
  62.      # echo "$sh : make presentation";
  63.       echo "$title
  64. $desc
  65. ??,$dt
  66. 2
  67. $level
  68.  
  69. $keyword
  70. $sup
  71. $email" > $tmptarget/$namesh.def;
  72.       cat $sh >> $tmptarget/$namesh.def;
  73.      fi;
  74.    # else
  75.    #  echo "$sh : EMPTY sheet";
  76.     fi;
  77.    done;
  78.    cd ../..;
  79.  # else
  80.  # echo "-----------------------NOTHING ---------- $cls ; $level ; $lang";
  81.   fi;
  82.  fi;
  83. done;
  84.  
  85.  
  86.