#*******************************************************************************# #* Thierry.Vieville@sophia.inria.fr, version 3.2 2005/11/30 *# #* Romain.Blineau@sophia.inria.fr, version 3.* 2005/08/** *# #* Thierry.Vieville@sophia.inria.fr, version 2.1 2004/11/30 *# #* (Alexis.Tresso|Virginie.Climent)@sophia.inria.fr, version 2.0 *# #*******************************************************************************# # # # Mecanisme de Formulaire Suivi Doctoral dit ``fido'' # # # #*******************************************************************************# # # Propagation des pages sur le site # WWW=/net/servers/www-sop/extranet/act_recherche/formulaire/dev URL=https://www-sop.inria.fr/act_recherche/formulaire/dev # . . distingue ce qui doit etre fait off-line ou connecte avec le site www-sop.inria.fr OFF=$(shell if ping -q -c 1 taquilee.inria.fr > /dev/null 2>&1 ; then echo false ; else echo true ; fi) # . . distingue ce qui doit etre fait si le debug est a -1 (simple test de la compilation) TST=$(shell if grep -q '\$$debug *= *-1 *;' fido_header.fct ; then echo true ; else echo false ; fi) publish : compile #ifeq ($(OFF),false) @# Copie les fichiers en miroir @echo 'rsync ..'; cd .. ; rsync --archive --exclude '*.htm' --exclude '*.xml' --exclude '*.xsl' --exclude '.svn' --exclude '*~' ./* taquilee.inria.fr:$(WWW) @# Ouvre la page sur le site @echo 'show ..'; firefox $(URL)/tools/whats-to-be-done.php #else # @# Ouvre le repertoire # @echo 'show ..'; firefox file:$(PWD) #endif # Gestion du fichier de backup: compression des backup precedents, creation d'un nouveau fichier BACKUP = $(WWW)/tools/.backup backup : @if [ -f $(BACKUP) ] ; then mv $(BACKUP) $(BACKUP)-`date +%y%m%d%H%M%S` ; gzip -9q $(BACKUP)-* ; fi @if [ -d $(WWW) ] ; then touch $(BACKUP) ; chmod a+wr $(BACKUP) ; fi # # Compilation/elimination des fichiers php # compile : ../index.php $(patsubst %.xml,%.php,$(shell find .. -name '*.xml')) ../doctorant/.htaccess ../assistante/.htaccess ../csd/.htaccess index-pages.php index-tools.php clean : @# Elimine les fichiers generes par ce makfile @find .. \( -name '*.php' -o -name '*.htm' -o -name '*~' -o -name '.htaccess' \) -delete @# Montre les fichiers source qui ont ete changes @cd .. ; svn status | egrep -v '\?[ \t]+(tools/\.ht_fido_config|[^/]*/\.htpasswd)' ; ok=ok @# Affiche des fichiers avec un encodage inattendu @file -i ../*/* | grep '\.fct' | grep -v charset=iso-8859-1 ; ok=ok @file -i ../*/* | grep -v '\.fct' | grep -v '\.fig' | grep charset=iso-8859-1 ; ok=ok XML2HTM=java -jar saxon.jar %.php : %.xml $(wildcard *.xsl) $(wildcard ../*/menu-*.xml) @# Traduction du xml et patch des entites en sortie @echo xml2htm $*.xml ; $(XML2HTM) -o $*.php.bak $*.xml templates.xsl ; sed 's/>/>/g'< $*.php.bak > $*.php ; rm $*.php.bak ifeq ($(TST),true) @# Test de la production php en html @php -q $@ > $*.htm @# Test de validation des pages html @#/usr/java/saxon6_5_3/validate/validate $*.htm @# Teste les liens @linkcheck -verbosity 1 file:$(PWD)/$*.htm 2>&1 | egrep -v '^(Checked|Found)' ; ok=ok endif ../index.php : makefile @#echo '' > $@ @echo '' > $@ ../doctorant/.htaccess : makefile (echo 'order allow,deny' ;\ echo 'AuthType Basic' ;\ echo 'AuthName "fido3.2"' ;\ echo 'Satisfy any' ;\ echo 'allow from 138.96.0.0/255.255.0.0' ;\ echo 'AuthUserFile $(WWW)/tools/.htpasswd' ;\ echo "require user doctorant assistante csd" ;\ echo 'AuthAuthoritative off') > $@ %/.htaccess : makefile @case "$(*F)" in doctorant ) u='doctorant assistante csd' ;; assistante ) u='assistante csd' ;; csd ) u='csd' ;; esac ;\ (echo 'AuthType Basic' ;\ echo 'AuthName "fido3.2"' ;\ echo 'AuthUserFile $(WWW)/tools/.htpasswd' ;\ echo "require user $$u") > $@ test-htaccess : export https_proxy=vssv.inria.fr:8080 ;\ echo 'ACCESS OK:' ;\ wget --no-check-certificate --proxy=on --http-user=doctorant --http-passwd=bienvenue https://www-sop.inria.fr/act_recherche/formulaire/dev/doctorant/accueil.php ;\ echo 'ACCESS KO:' ;\ wget --no-check-certificate --proxy=on --http-user=doctorant --http-passwd=pas-bienvenu https://www-sop.inria.fr/act_recherche/formulaire/dev/doctorant/accueil.php ;\ echo 'TEST DONE' # # Ces deux fichiers sont utiles pour avoir la liste des fichiers de fido # index-pages.php : $(shell find .. -name '*.xml' | sort) @echo '$@

Pages XML de fido3.2

'> $@ @for f in $^ ; do \ (echo '
' ; sed 's/') > $$f.lst.php ;\
	  echo $$f | sed 's/.xml//' | awk '{ print "
"; }' >> $@ ;\ done @echo '
"$$1".xml ["$$1"]
' >> $@ index-tools.php : $(shell find .. -name '*.fct' -o -name '*.xsl' | sort) @echo '$@

Outils PHP et XSL de fido3.2

'> $@ @for f in $^ ; do \ if [ -z "`echo $$f | grep '\.fct$$'`" ] ; then ICONV='cat' ; else ICONV='iconv --from-code=ISO-8859-1 --to-code=UTF-8' ; fi ;\ (echo '
' ; sed 's/') | $$ICONV > $$f.lst.php ;\
	  (echo $$f | awk '{ print "
') >> $@ ;\ done @echo '
"$$1""; }'; head -2 $$f.lst.php | tail -1 | sed 's/]*>//' | sed 's/
' >> $@ # # Commandes utiles pour la mise au point # # svn checkout svn+ssh://développeur@scm.gforge.inria.fr/svn/fido commit : @cd .. ; svn commit -m '' xterm : @konsole --workdir $(WWW)