Subversion Repositories wimsdev

Rev

Rev 11672 | Rev 15581 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
#! /bin/sh
2
 
7240 bpr 3
## global variable
20 reyssat 4
thisdir=`pwd`
5
lastdir=$thisdir
6090 bpr 6
if [ -z "$wims_home" ]; then wims_home=$1; fi;
20 reyssat 7
if [ -z "$wims_home" ]; then wims_home=$w_wims_home; fi
7240 bpr 8
## use in bin/mkindex
6090 bpr 9
if [ -z "$w_wims_class" ] ; then wims_doc=$2 ; fi
20 reyssat 10
 
11
while [ -z "$wims_home" ] && [ "$lastdir" != "/" ]
12
do
13
 wims_home=`cat $lastdir/.wimshome 2>/dev/null`
14
 lastdir=`dirname $lastdir`
15
done
16
if [ -z "$wims_home" ]; then
17
 echo WIMS home directory not found.
18
 exit;
19
fi
20
 
8367 bpr 21
w_msg2wims_primitives="if ifval for while
22
    reload fold ref link docform form resource calcform embed
23
    exercise tool doc example help adm tooltip href slib
24
    def define comment draw canvasdraw audio"
20 reyssat 25
export w_msg2wims_primitives
7240 bpr 26
### macro : structure of the document : define $def and $src
27
### the parameter is the name of the directory in doc (not used in a class)
28
doc_type () {
29
 test=
30
 if [ ! -z "$w_wims_class" ]; then
31
  test=`echo $thisdir | grep '/classes/..$'`
20 reyssat 32
 fi
7240 bpr 33
 if [ ! -z "$test" ] && [ -d $wims_home/log/classes/$w_wims_class ]; then
34
  class_header=$wims_home/log/classes/$w_wims_class
35
  ntest=`awk -F'=' '$1=="sharing_doc" {print $2}' $class_header/neighbors`
36
  if [ ! -z "$ntest" ] && [ -d "$wims_home/log/classes/$ntest/src" ]; then
37
   class_header=$wims_home/log/classes/$ntest
38
  fi
39
### no document like that - come from oef ?
40
  def=$class_header/def
41
  src=$class_header/src
42
  mkdir -p $def
43
 else
44
  class_header=
45
  def=doc/$1
46
  src=$def/src
47
 fi
20 reyssat 48
 
7240 bpr 49
 if [ -z "$class_header" ]  && [ ! -z "$wims_doc" ]
6090 bpr 50
  then
6091 bpr 51
   class_header=$wims_doc
6090 bpr 52
   def=$class_header
53
   src=$class_header/src
7240 bpr 54
 fi
55
}
6091 bpr 56
 
7240 bpr 57
clean_doc ( ) {
58
  deff=`cd $1; ls *.def 2>/dev/null`
59
  for i in $deff
60
   do
61
   dd=${i%.def}
62
   if [ ! -f $2/$dd ]; then
63
    echo Removing $def/$i.
64
    rm -f $1/$i >/dev/null;
65
   fi
66
  done
67
}
20 reyssat 68
 
11402 bpr 69
clean_src ( ) {
70
  rm -f $1/.src/* >/dev/null;
11672 bpr 71
  rmdir $1/.src 2>/dev/null;
11402 bpr 72
}
73
 
7240 bpr 74
## generation des .def
75
gen_doc ( ) {
76
  def=$1
77
  src=$2
78
  srcf=`cd $src; ls 2>/dev/null | grep -v '.hd$'`
79
  for i in $srcf
80
  do
81
   dd=$i.def
82
   dh=$i.hd
83
   if [ ! -f $src/$dh ]; then
84
    awk '/^!if/ {exit}; {print}' $def/$dd >$src/$dh 2>/dev/null
85
   fi
86
   if [ ! -f $def/$dd ] || [ $src/$i -nt $def/$dd ]; then
87
    rm -f $def/$dd 2>/dev/null
88
    $wims_home/bin/msg2wims $src/$i tmp
89
    cat $src/$dh >$def/$dd 2>/dev/null
90
## make here some perl conversions on the file tmp
91
## as s:</li>\s*<p>\s*<li>:\n</li><li>\n:g;
92
    $wims_home/public_html/scripts/docu/conversion.pl tmp
93
    cat <<@ >>$def/$dd
20 reyssat 94
!if \$wims_read_parm!=\$empty
14816 bpr 95
  !goto \$wims_read_parm
20 reyssat 96
!endif
97
!exit
98
 
99
:content
100
@
7240 bpr 101
   cat tmp >>$def/$dd
102
  fi
103
 done
104
 rm -f tmp
105
}
20 reyssat 106
 
7240 bpr 107
index_file () {
108
cd $1
20 reyssat 109
filelist=`ls *.def 2>/dev/null`
110
echo >.index
111
for f in $filelist
112
do
113
 fs=${f%.def}
114
 tit=`awk -F= '/titb.*=/ {print $2; exit}' $f`
115
 if [ -n "$tit" ]; then
116
  echo ":$fs
117
$tit" >>.index
118
 fi
119
done
7240 bpr 120
}
7248 bpr 121
 
122
latex2wims ( ) {
10837 bpr 123
    perl $wims_home/public_html/modules/adm/latex2wims/latex2wims.pl --subdir=$1 --docdir=$lastdir --embed=document $2.tex
7248 bpr 124
}
125
 
7240 bpr 126
## on cherche les parametres $def $src
20 reyssat 127
 
7248 bpr 128
mk_doc ( ) {
7240 bpr 129
 cd $lastdir
130
 doc_type $1
131
 if [ ! -d $def ]; then
132
  echo Directory $def not found.
133
  exit;
134
 fi
135
 if [ ! -d $src ]; then
136
  echo Directory $src not found.
137
  exit;
138
 fi
7248 bpr 139
 ##latex2wims
7260 bpr 140
 if [ -f "$lastdir/doc/srctex/0index" ]; then
7622 bpr 141
  cd "$lastdir/doc/srctex"
7260 bpr 142
  cat 0index | while read dd
7248 bpr 143
   do
144
     if [ ! -z "${dd}" ] ; then latex2wims ${dd}; fi
145
   done
146
fi
147
cd $lastdir
7240 bpr 148
## cleaning file.def where file has been deleted
149
 clean_doc $def $src
11402 bpr 150
## cleaning .src if it exists
151
 clean_src $def
7240 bpr 152
## generated file *.def
153
  gen_doc $def $src
154
##definition files
155
  index_file $def
156
}
157
 
158
## main program !
159
 
160
if [ -f $lastdir/doc/.def ] ; then
7285 bpr 161
 doclist=`awk -F'=' '$1=="doclist" {print $2}' $lastdir/var.proc`
7240 bpr 162
fi
163
if [ -z "$doclist" ]; then doclist="1" ; fi
7622 bpr 164
for l in $doclist; do mk_doc $l; echo "" ; echo "$l done"; done
7240 bpr 165
 
166
### in case of a class, the parameter of doc ()  do not mind !
167
### many global variables yet