Salut,
Je dois ecrire un shellscript qui utilise le validateur CSS du W3C pour... valider des CSS (mais seuls les headers de retour m'interessent).
Les CSS a valider doivent etre dans le fichier tests.urls sous forme soit d'url, soit de chemins vers des fichiers locaux. Le script fait ensuite la requete adequate au serveur.
Voila le code qu j'ai ecrit:
Code :
- #!/bin/sh
- # EDIT THIS
- VALIDATOR="http://w3cstag8:8001/css-validator/validator"
- TESTFILE="tests.urls"
- ACCEPT_CHARSET="iso-8859-2"
- # END EDIT THIS
- WGET_OPTIONS="-S --spider"
- if [ "$ACCEPT_CHARSET" != "" ]
- then
- HEADER="--header='Accept-Charset: $ACCEPT_CHARSET'"
- fi
- while read LINE
- do
- if echo $LINE | grep "http://" > /dev/null
- then
- wget $WGET_OPTIONS $HEADER "$VALIDATOR/?uri=$LINE&usermedium=all"
- else
- TEXT=`cat $LINE`
- wget $WGET_OPTIONS $HEADER "$VALIDATOR/?text=$TEXT&usermedium=all"
- fi
- done < $TESTFILE
|
Voila ce que j'obtiens dans le cas d'une url (ici <pub>http://sparodez.celeonet.fr</pub> )(le resultat est le meme avec un fichier):
Citation :
--12:02:34-- http://iso-8859-2'/
=> `index.html'
Resolving iso-8859-2'... failed: Name or service not known.
--12:02:34-- http://w3cstag8:8001/css-validator [...] medium=all
=> `index.html?uri=http:%2F%2Fsparodez.celeonet.fr&usermedium=all.4'
Resolving w3cstag8... 127.0.0.1
Connecting to w3cstag8|127.0.0.1|:8001... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: keep-alive
Date: Fri, 08 Jul 2005 10:02:34 GMT
Pragma: no-cache
Content-Length: 19033
Content-Language: en
Content-Type: text/html;charset=utf-8
Server: Jigsaw/2.2.5
Length: 19,033 (19K) [text/html]
200 OK
FINISHED --12:02:35--
Downloaded: 0 bytes in 0 files
|
au lieu de ca
Citation :
--12:04:30-- http://w3cstag8:8001/css-validator [...] medium=all
=> `index.html?uri=http:%2F%2Fsparodez.celeonet.fr&usermedium=all.4'
Resolving w3cstag8... 127.0.0.1
Connecting to w3cstag8|127.0.0.1|:8001... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: keep-alive
Date: Fri, 08 Jul 2005 10:04:30 GMT
Pragma: no-cache
Content-Length: 19033
Content-Language: en
Content-Type: text/html;charset=iso-8859-2
Server: Jigsaw/2.2.5
Length: 19,033 (19K) [text/html]
200 OK
|
lorsque je tape la commande suivante:
Citation :
wget -S --spider --header='Accept-Charset: iso-8859-2' "http://w3cstag8:8001/css-validator/validator/?uri=http://sparodez.celeonet.fr&usermedium=all"
|
Comme on peut voir, il fait 2 requete, la premiere sur http://iso-8859-2'/ n'etant pas normale. Et du coup, le header d'envoi ne contient pas les bonnes informations => le header de retour non plus (utf-8 au lieu de iso-8859-2 dans ce cas).
Je pense que le probleme se situe au niveau de la variable $HEADER a cause de quote, mais je ne vois pas comment le resoudre.
Merci,
Ze Reaper
PS: Pour mes tests je n'utilise pas http://jigsaw.w3.org, mais une version encore en developpement de ce validateur. Pour tester le code, il faut donc changer la variable $VALIDATOR par http://jigsaw.w3.org/css-validator/validator. Il faut cependant noter que la version officielle du validateur n'inclut pas encore la gestion des Accept-Charset (ca ne saurait tarder ), et donc ne renvoie pas de charset dans la reponse.
Message édité par Ze Reaper le 08-07-2005 à 12:16:27