#!/bin/bash # # update : # $Id$ # fplod 2006-09-18T13:25:12Z aedon.locean-ipsl.upmc.fr (Darwin) # add status checking after makehtml.sh # smasson Fri Sep 15 10:42:01 CEST 2006 # merge idldoc html and idldoc assistant # smasson Thu Sep 14 15:19:23 CEST 2006 # add the revision number in the name of SAXO_SRC_*.tar.gz # smasson Wed Sep 13 14:18:02 CEST 2006 # add the directory-overview.html from dir-files.html in idldoc_html_output # fplod 2006-09-07T08:09:47Z aedon.locean-ipsl.upmc.fr (Darwin) # main is rename to websaxo # fplod 2006-09-05T15:39:47Z aedon.locean-ipsl.upmc.fr (Darwin) # add Source link in idldoc html outpout # snlod/fplod 2006-08-25T08:30:36Z electre.locean-ipsl.upmc.fr (Darwin) # add for idldoc assistant # fplod 2006-08-17T09:19:06Z aedon.locean-ipsl.upmc.fr (Darwin) # add transformation after idldoc to force non-proportional font # on bloc delimited by # # # in .pro files (with modification of css) # !! do not replace \ by \\ inside this block # !! replace \ by an other character is a good idea # cf. example in ToBeReviewed/TRIANGULATION/definetri.pro # fplod 2006-07-21T08:23:52Z aedon.locean-ipsl.upmc.fr (Darwin) # add mini_notice production # fplod 2006-07-11T08:26:05Z aedon.locean-ipsl.upmc.fr (Darwin) # commented tidy in dohtml section is moved in makehtml # fplod 2006-07-10T08:22:53Z aedon.locean-ipsl.upmc.fr (Darwin) # ajout de white-space: pre; dans la css pour file_comments # fplod 2006-07-04T13:09:19Z aedon.locean-ipsl.upmc.fr (Darwin) # for idldoc html output # because preformat option doesn't seem to work well # replace # div class="value" # by # div class="preformat" # fplod 2006-06-19T08:46:39Z aedon.locean-ipsl.upmc.fr (Darwin) # for idldoc html output #. replace # -e 's/\(href=".*\)\(\.html\)\("\)/\1\2?format=raw\3/g' \ # -e 's/\(href=".*\)\(\.html\)\(#.*"\)/\1\2?format=raw\3/g' \ # -e 's/\(src=".*\)\(\.html\)\("\)/\1\2?format=raw\3/g' \ # by # -e 's@\(href="[^.]*[^h]*[^t]*[^m]*[^l]*[^"]*\)\(\.html\)\("\)@\1\2?format=raw\3@g' \ # -e 's@\(href="[^.]*[^h]*[^t]*[^m]*[^l]*[^"]*\)\(\.html\)\(#.*"\)@\1\2?format=raw\3@g' \ #-e 's@\(src="[^.]*[^h]*[^t]*[^m]*[^l]*[^"]*\)\(\.html\)\("\)@\1\2?format=raw\3@g' # in order to be able to add ?format=raw several time on one line # . suppress .html in line like # a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_read.html # in files idldoc-index*.html # fplod 2006-06-14T12:41:37Z aedon.locean-ipsl.upmc.fr (Darwin) # add embed parameter idldoc instructions to try to fix ticket#17 # fplod 2006-06-07T12:11:50Z aedon.locean-ipsl.upmc.fr (Darwin) # add g option in ?format=raw sed transformation in order to fix # link on top of idldoc like directory-overview.html # fplod 2006-06-07T10:57:35Z aedon.locean-ipsl.upmc.fr (Darwin) # add ?format=raw in idldoc production for frames # fplod 2006-06-07T08:14:15Z aedon.locean-ipsl.upmc.fr (Darwin) # add action for idldochtml # fplod 2006-06-02T14:28:30Z aedon.locean-ipsl.upmc.fr (Darwin) # modification to produce tar files in /tmp/saxo_${$} when dotar=1 # modification to copy tar files on http://forge.ipsl.jussieu.fr/saxo/download/ # when doforge=1 # produce tar files in /tmp/saxo_${$} when dotar=1 set -x set -u # docompileall=1 dohtml=0 dooldtest=0 doidlwavedoc=0 doidldoc=0 doTARsrc=0 doTARdata=0 doforge=0 doSRClodyc=0 doDTAlodyc=0 doSRCipsl=0 doDTAipsl=0 doSRCidris=0 doDTAidris=0 # case $( whoami ) in smasson) lgforge=smasson ;; floseb) lgforge=smasson ;; *) lgforge=saxo ;; esac # if [ ${lgforge} != smasson ] then doSRClodyc=0 doDTAlodyc=0 doSRCipsl=0 doDTAipsl=0 doSRCidris=0 doDTAidris=0 fi # # get the date in a nice format # ndate=`date +%Y%m%d` rev=$( svn info | grep -i revision | awk '{print $NF}' ) # memorize current directory memopwd=$(pwd) # should be /SRC/Documentation/xmldoc # #------------------------------------------------------------------ if [ ${docompileall} -eq 1 ] then cat < /tmp/compileall${$}.pro .reset_session ; !path = expand_path('+' + '../..') + ':' + expand_path('+' + !dir) resolve_all, resolve_either='def_myuniquetmpdir', skip_routines = ['xxx2ps','trends', 'label_gmt'] resolve_all, resolve_either = 'find', skip_routines = ['xxx2ps','trends', 'label_gmt'] def_myuniquetmpdir oldcm = find('oldcm_empty') ;oldcm = find('oldcm_full') oldcm = oldcm[0] @cm_general file_copy, oldcm, myuniquetmpdir + 'oldcm_used.pro', /overwrite IF !journal NE 0 THEN journal journal, myuniquetmpdir + 'cm_demomode_used.pro' journal ; resolve_all, resolve_either='keep_compatibility', skip_routines = ['xxx2ps','trends', 'label_gmt'] ; EOF # for i in $( find ${memopwd}/../.. -name "*.pro" | grep -iv label_gmt ) do # does it contains pro or function ? egrep -iq '^ * *(pro|function)' $i if [ $? -eq 0 ] then echo "print, '$( basename $i .pro ) :'" >> /tmp/compileall${$}.pro echo "resolve_all, resolve_either = '$( basename $i .pro )', skip_routines = ['xxx2ps','trends', 'label_gmt']" >> /tmp/compileall${$}.pro fi done echo exit >> /tmp/compileall${$}.pro IDL_STARTUP=/tmp/compileall${$}.pro ${IDL_DIR}/bin/idl &> /tmp/compileallerr_${$} echo echo grep -i "error" /tmp/compileallerr_${$} # grep -q "Compilation error(s)" /tmp/compileallerr_${$} if [ ${?} -ne 0 ] then echo "ALL SAXO files are OK..." rm -f /tmp/compileallerr_${$} /tmp/compileall${$}.pro else grep "Compilation error(s)" /tmp/compileallerr_${$} echo "eee : see /tmp/compileallerr_${$}" more /tmp/compileallerr_${$} exit 1 fi echo echo fi #------------------------------------------------------------------ if [ ${dohtml} -eq 1 ] then # # redo the html file # cd ${memopwd} for docxml in firststeps.xml getsaxo.xml mailing.xml websaxo.xml tiplink.xml updatesaxo.xml whatissaxo.xml whatsnew.xml infoupdatekwd.xml infoupdatecm.xml mini_notice.xml faqsaxo.xml do ./makehtml.sh $(basename ${docxml} .xml) status=${?} if [ ${status} -ne 0 ] then echo "eee : pb with makehtml.sh $(basename ${docxml} .xml)" exit 1 fi done exit 0 fi #------------------------------------------------------------------ if [ ${dooldtest} -eq 1 ] then # make the old test # cd ${memopwd}/../../Tests/ ./makeold.sh exit 0 fi #------------------------------------------------------------------ if [ ${doidlwavedoc} -eq 1 ] then # # redo idlwave doc # cd ${memopwd}/../.. Documentation/idlwave_catalog -v -f saxo exit 0 fi #------------------------------------------------------------------ if [ ${doidldoc} -eq 1 ] then # # build a idl file to launch idldoc output=../idldoc_html_output/ log="/tmp/idldochtlm_${$}.log" pro="/tmp/idldochtlm_${$}.pro" cat < ${pro} !path = expand_path('+' + '../idldoc/') print,!path idldoc,root="../../",title="SAXO Documentation", $ LOG_FILE="${log}", $ output="${output}", $ overview="../../overview", /statistics, /preformat, /embed exit EOF # launch idl with the file built above IDL_STARTUP=${pro};${IDL_DIR}/bin/idl /bin/rm ${pro} # In order to do not have to many revision in svn, we modify some # lines produced by idldoc : # - add Source link in each html file # example : # Source # will be replaced by # Source # # - remove date and time of idldoc production # examples : # # will be replaced by # #
Produced by IDLdoc 2.0 on Wed Jun 7 10:54:37 2006.
Produced by IDLdoc 2.0 #

Produced on Wed Jun 7 10:23:13 2006

# will be delete # other lines will be deleted because the time is the time of checkout not # the time of revision. # the sequence of lines #
#
Last modification:
#
Fri Jun 2 11:46:24 2006
#
# should also be removed ++ je ne sais pas dire en sed la ligne # suivant l'occurence de Last modification # add ?format=raw to links on html files cat << EOF > /tmp/css_modification p.preformat { font-family: Courier; } EOF # count of directory levels in output # this ount will be use to format relative path later nblev1=$(echo ${output} | sed -e "s@/\$@@" |awk -F "/" '{print NF}') # list_html=$(find ${output} -name "*.html") for file_html in ${list_html} do # build the .pro file name bfile=$(basename ${file_html} .html) # retrieve the path of html file relative to memopwd (so relative to # output). This path will be used in "Source" link. nblev2=$(dirname ${file_html} | sed -e "s@/\$@@" | awk -F "/" '{print NF}') difflev=$((${nblev2} - ${nblev1})) if [ ${difflev} -ge 2 ] then ilev=1 reloutput_html=".." while [ ${ilev} -le ${difflev} ] do reloutput_html="${reloutput_html}/.." ilev=$(( ${ilev} + 1 )) done relpath_html=$(dirname ${file_html} | \ sed -e "s@${output}@${reloutput_html}@" \ -e "s@\$@/@") echo "relpath ${relpath_html})" else relpath_html="./" fi # echo "relpath ${relpath_html}/${bfile}" sed \ -e "s@Source<\/td>@Source<\/a><\/td>@" \ -e "s/\(Generated by IDLdoc 2.0\)\( on .*\)\( -->\)/\1\3/" \ -e "s/\(Produced by IDLdoc 2.0\)\( on .*\)\(\.<\/div>\)/\1\3/" \ -e "/

Produced on/d" \ -e "/Last modification:/d" \ -e "/
... ... .* ..:..:.. ....<\/dd>/d" \ -e 's@\(href="[^.]*[^h]*[^t]*[^m]*[^l]*[^"]*\)\(\.html\)\("\)@\1\2?format=raw\3@g' \ -e 's@\(href="[^.]*[^h]*[^t]*[^m]*[^l]*[^"]*\)\(\.html\)\(#.*"\)@\1\2?format=raw\3@g' \ -e 's@\(src="[^.]*[^h]*[^t]*[^m]*[^l]*[^"]*\)\(\.html\)\("\)@\1\2?format=raw\3@g' \ -e 's@
@
@' \ -e 's/div\#file_comments {/div\#file_comments { white-space: pre;/' \ -e 's@^ @

@' \ -e 's@^ @

@' \ -e '/Main styles/r /tmp/css_modification' \ ${file_html} > ${file_html}_modify mv ${file_html}_modify ${file_html} done rm /tmp/css_modification # suppress ".html" in idldoc-index*.html in lines like # a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_read.html list_html=$(find ${output} -name "idldoc-index*.html") for file_html in ${list_html} do sed \ -e "s/\(a parameter from the routine \)\(.*\)\(.html\)/\1\2/" \ ${file_html} > ${file_html}_modify mv ${file_html}_modify ${file_html} done echo "iii : you can see log file in ${log}" echo "iii : and look ${output}/idldoc-warnings.html#undoc" # # build a idl file to launch idldoc output=../idldoc_assistant_output/ log="/tmp/idldocassistant_${$}.log" pro="/tmp/idldocassistant_${$}.pro" cat < ${pro} !path = expand_path('+' + '../idldoc/') print,!path idldoc,root="../../",title="SAXO Documentation Assistant", $ LOG_FILE="${log}", $ output="${output}", overview='../../overview', /statistics, /preformat, /embed, /assistant exit EOF # launch idl with the file built above IDL_STARTUP=${pro};${IDL_DIR}/bin/idl /bin/rm ${pro} # In order to do not have to many revision in svn, we modify some # lines produced by idldoc : # examples : # # will be replaced by # #
Produced by IDLdoc 2.0 on Wed Jun 7 10:54:37 2006.
Produced by IDLdoc 2.0
#

Produced on Wed Jun 7 10:23:13 2006

# will be delete # other lines will be deleted because the time is the time of checkout not # the time of revision. # the sequence of lines #
#
Last modification:
#
Fri Jun 2 11:46:24 2006
#
# should also be removed ++ je ne sais pas dire en sed la ligne # suivant l'occurence de Last modification # replace *_param_* in href attributes because anchors are badly written # with _keyword_ #++ -e 's@\(href="#_.*\)\(_param_\)\(.*"\)@\1_keyword_\3@g' \ # ++ pb global # DON'T add here (in assistant idldoc output) ?format=raw to link because # ONLINE_HELP, book="../idldoc_assistant_output/idldoc-lib.adp", /full_path # won't work list_html=$(find ${output} -name "*.html") for file_html in ${list_html} do sed \ -e "s/\(Generated by IDLdoc 2.0\)\( on .*\)\( -->\)/\1\3/" \ -e "s/\(Produced by IDLdoc 2.0\)\( on .*\)\(\.<\/div>\)/\1\3/" \ -e "/

Produced on/d" \ -e "/Last modification:/d" \ -e "/
... ... .* ..:..:.. ....<\/dd>/d" \ -e '/href/s@_param_@_keyword_@g' \ -e 's@
@
@' \ -e 's/div\#file_comments {/div\#file_comments { white-space: pre;/' \ -e 's@^ @
@' \
     -e 's@^ @
@' \ ${file_html} > ${file_html}_modify mv ${file_html}_modify ${file_html} done # add the directory-overview.html from dir-files.html in idldoc_html_output list_html=$(find ../idldoc_html_output -name dir-files.html) for file_html in ${list_html} do fout=../idldoc_assistant_output/${file_html#../idldoc_html_output/*} fout=${fout%/*}/directory-overview.html sed -e 's/?format=raw//g' ${file_html} > ${fout} done echo "iii : you can see log file in ${log}" echo "iii : and look ${output}/idldoc-warnings.html#undoc" fi #------------------------------------------------------------------ if [ ${doTARsrc} -eq 1 ] then localtarbase=/tmp/savesaxo_${$} mkdir ${localtarbase}/ # clean backup files : *~ find ${memopwd}/../../.. -name "*~" -exec rm {} \; # prepare the source tar (without the svn...) # cd ${memopwd}/../../.. tar czf ${localtarbase}/SAXO_SRC_${ndate}r${rev}.tar.gz --exclude .svn SRC # # informations echo "iii : following file may be copied on http://forge.ipsl.jussieu.fr/saxo/download/" ls -l ${localtarbase} fi #------------------------------------------------------------------ if [ ${doTARdata} -eq 1 ] then localtarbase=/tmp/savesaxo_${$} mkdir ${localtarbase}/ # # prepare the data tar (without the svn...) # cd ${memopwd}/../../.. tar czf ${localtarbase}/SAXO_DATA_${ndate}.tar.gz --exclude .svn DATA # # informations echo "iii : following file may be copied on http://forge.ipsl.jussieu.fr/saxo/download/" ls -l ${localtarbase} fi #------------------------------------------------------------------ if [ ${doforge} -eq 1 ] then echo "iii : you will be asked ${lgforge}@forge.ipsl.jussieu.fr passwd two times" if [ ${doTARsrc} -ne 1 ] then localtarbase=${1} fi scp ${localtarbase}/SAXO_*.tar.gz ${lgforge}@forge.ipsl.jussieu.fr:/ipsl/forge/projets/saxo/download/ echo "iii : do not forget to update getsaxo.html" echo "iii : \$ ./makehtml.sh getsaxo" echo "iii : do not forget to clean ${localtarbase}" fi #------------------------------------------------------------------ if [[ ($doDTAlodyc -eq 1) || ($doDTAipsl -eq 1) ]] then echo "iii : you will be asked ${lgforge}@forge.ipsl.jussieu.fr passwd" infodata=$(ssh ${lgforge}@forge.ipsl.jussieu.fr ls -lht /ipsl/forge/projets/saxo/download/SAXO_DATA_*.tar.gz | head -n 1) filedata=$(echo ${infodata} | awk '{print $NF}') filedata=$(basename $filedata) cat < job_data_$$ #!/bin/bash cd SAXO_DIR # rm -rf DATA wget http://forge.ipsl.jussieu.fr/saxo/download/$filedata gunzip $filedata tar vxf $( basename $filedata .gz ) rm -f $( basename $filedata .gz ) # chmod -R 755 * exit # EOF fi #------------------------------------------------------------------ if [ $doSRClodyc -eq 1 ] then # update src on cerbere # echo "iii : update src on cerbere" ssh smasson@cerbere.lodyc.jussieu.fr "svn update SAXO_DIR/SRC ; chmod -R 755 SAXO_DIR" fi #------------------------------------------------------------------ if [ $doDTAlodyc -eq 1 ] then # update data on cerbere echo "iii : update data on cerbere" scp job_data_$$ smasson@cerbere.lodyc.jussieu.fr:. ssh smasson@cerbere.lodyc.jussieu.fr "chmod 755 job_data_$$ ; ./job_data_$$ ; rm -f job_data_$$" fi #------------------------------------------------------------------ if [ $doSRCipsl -eq 1 ] then # update src on calcul2 # echo "iii : update src on calcul2" ssh smlod@calcul2.ipsl.jussieu.fr "svn update SAXO_DIR/SRC ; chmod -R 755 SAXO_DIR" fi #------------------------------------------------------------------ if [ $doDTAipsl -eq 1 ] then # update data on cook echo "iii : update data on cook" scp job_data_$$ smlod@cook.ipsl.jussieu.fr:. ssh smlod@cook.ipsl.jussieu.fr "chmod 755 job_data_$$ ; ./job_data_$$ ; rm -f job_data_$$" fi #------------------------------------------------------------------ if [ $doSRCidris -eq 1 ] then # update src on rhodes echo "iii : update src to rhodes" ssh reee217@rhodes.idris.fr "/usr/local/pub/svn/svn-1.3.1/bin/svn update SAXO_DIR/SRC ; chmod -R 755 SAXO_DIR" fi #------------------------------------------------------------------ if [ $doDTAidris -eq 1 ] then # create the update script for rhodes if [[ ($doDTAlodyc -eq 0) && ($doDTAipsl -eq 0) ]] then echo "iii : you will be asked ${lgforge}@forge.ipsl.jussieu.fr passwd" infodata=$(ssh ${lgforge}@forge.ipsl.jussieu.fr ls -lht /ipsl/forge/projets/saxo/download/SAXO_DATA_*.tar.gz | head -n 1) filedata=$(echo ${infodata} | awk '{print $NF}') filedata=$(basename $filedata) fi cat < job_data_idris_$$ #!/bin/ksh cd SAXO_DIR # rm -rf DATA echo "iii : you will be asked ${lgforge}@forge.ipsl.jussieu.fr passwd" scp ${lgforge}@forge.ipsl.jussieu.fr:/ipsl/forge/projets/saxo/download/$filedata . gunzip $filedata tar vxf $( basename $filedata .gz ) rm -f $( basename $filedata .gz ) # chmod -R 755 * exit # EOF # update data on gaya echo "iii : update data to gaya" scp job_data_idris_$$ reee217@gaya.idris.fr:. ssh reee217@gaya.idris.fr "chmod 755 job_data_idris_$$ ; ./job_data_idris_$$ ; rm -f job_data_idris_$$" fi #------------------------------------------------------------------ # [ -f job_src_$$ ] && rm -f job_src_$$ [ -f job_data_$$ ] && rm -f job_data_$$ [ -f job_data_idris_$$ ] && rm -f job_data_idris_$$ # exit #