#*******************************************************************************#
#* 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/\</g' < $$f ; echo '
') > $$f.lst.php ;\
echo $$f | sed 's/.xml//' | awk '{ print ""$$1".xml | ["$$1"] |
"; }' >> $@ ;\
done
@echo '
' >> $@
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/\</g' < $$f ; echo '
') | $$ICONV > $$f.lst.php ;\
(echo $$f | awk '{ print ""$$1" | "; }'; head -2 $$f.lst.php | tail -1 | sed 's/]*>//' | sed 's/\</g' ; echo ' |
') >> $@ ;\
done
@echo '
' >> $@
#
# 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)