<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Artisan Numérique</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1642"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/node/1642/atom/feed"/>
  <id>http://artisan.karma-lab.net/node/1642/atom/feed</id>
  <updated>2008-09-23T15:57:51+02:00</updated>
  <entry>
    <title>Récupérer ses fichiers WAR</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1642" />
    <id>http://artisan.karma-lab.net/node/1642</id>
    <published>2008-09-23T01:26:41+02:00</published>
    <updated>2008-09-23T15:57:51+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="FireFox" />
    <category term="OK" />
    <category term="Planet Libre" />
    <category term="Tutoriel" />
    <summary type="html"><![CDATA[<p>
  Rien de bien guerrier dans cette histoire, ni même de rapport avec Java. Ici les fichiers WAR sont ceux qui étaient générés (et qui le sont peut-être encore) par l'extension d'archivage de page de 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Konqueror'>
  Konqueror
  </a>, des Web ARchives. Et il se trouve que dans ma grande paranoïa du 404, j'ai généré des centaines de ces fichiers, 341 pour être exacte...
</p>
<p>
 Aujourd'hui, je n'utilise plus Konqueror mais ce très cher FireFox qui ne tient sur mon bureau que par cette extension magique qu'est <a class='external' target='_blank' href='https://addons.mozilla.org/fr/firefox/addon/427' >ScrapBook</a> dont je ne pourrais juste plus me passer. Du coup, a fini par se poser le problème du passage de l'un à l'autre des deux mondes. Alors je ne sais pas si cela va intéresser grand monde, mais au cas où, voilà comment faire. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Rien de bien guerrier dans cette histoire, ni même de rapport avec Java. Ici les fichiers WAR sont ceux qui étaient générés (et qui le sont peut-être encore) par l'extension d'archivage de page de 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Konqueror'>
  Konqueror
  </a>, des Web ARchives. Et il se trouve que dans ma grande paranoïa du 404, j'ai généré des centaines de ces fichiers, 341 pour être exacte...
</p>
<p>
 Aujourd'hui, je n'utilise plus Konqueror mais ce très cher FireFox qui ne tient sur mon bureau que par cette extension magique qu'est <a class='external' target='_blank' href='https://addons.mozilla.org/fr/firefox/addon/427' >ScrapBook</a> dont je ne pourrais juste plus me passer. Du coup, a fini par se poser le problème du passage de l'un à l'autre des deux mondes. Alors je ne sais pas si cela va intéresser grand monde, mais au cas où, voilà comment faire. 
</p>
<!--break-->


	<a name='chapter_1'></a>
  <h2>Lire le fichier WAR</h2>
	
<p>
   Techniquement les .war sont des archives 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/TAR'>
  TAR
  </a>, compressées par 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/gzip'>
  gzip
  </a>. En interne, l'utilitaire de Konqueror n'est pas mal fait car il rend standard n'importe quel site en générant systématiquement un <kbd>index.html</kbd> à la racine de l'archive, quel que fût le nom de fichier d'origine. Du coup, une première étape très simple à réaliser est un petit script permettant d'ouvrir ces archives sous FireFox à partir de Nautilus :
   
  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="co0">#! /bin/sh</span><br />
<br />
<span class="co0"># Création du dossier temporaire d'extraction</span><br />
<span class="kw3">cd</span> <span class="re1">$TMPDIR</span><br />
<span class="re2">working_path=</span>$<span class="br0">&#40;</span><a target="blank" href="http://pwet.fr/man/linux/commandes/mktemp"><span class="kw2">mktemp</span></a> -d<span class="br0">&#41;</span><br />
<a target="blank" href="http://pwet.fr/man/linux/commandes/mkdir"><span class="kw2">mkdir</span></a> <span class="re1">$working_path</span> <br />
<span class="kw3">cd</span> <span class="re1">$working_path</span><br />
<br />
<span class="co0"># extraction de l'archive</span><br />
<a target="blank" href="http://pwet.fr/man/linux/commandes/tar"><span class="kw2">tar</span></a> -zxf <span class="st0">&quot;$1&quot;</span><br />
<br />
<span class="co0"># Affichage de la page dans firefox</span><br />
firefox index.html &nbsp; &nbsp;
  </div>
  <div class='caption'>~/.gnome2/nautilus-scripts/Ouvrir l&#039;archive</div>
  </div>
</p>   
<p>
  A noter que cela aurait aussi bien pu être Epiphany ou tout autre navigateur. 
</p>


	<a name='chapter_2'></a>
  <h2>Lire l'URL du fichier WAR</h2>
	
<p>
   Maintenant le problème, déjà présent sous Konqueror, est que j'ai bien le contenu mais pas la possibilité de revenir à URL d'origine. Il s'agit là d'une de ces précieuses fonctions Scrapbookiennes, bien utile lorsque l'on construit une présentation, une formation ou un article et que l'on aime à citer ses sources.  Cela me permettrait aussi de pouvoir ré-archiver certaines pages avec Scrapbook qui n'altère que rarement le rendu dans l'opération. 
</p>
<p>
  C'est un peu en désespoir de cause que j'ai lancé un <kbd>vi</kbd> sur l'index.html dans un des dossiers temporaires créés par le script donné plus haut. Et au début du fichier, voici ce que l'on trouve :
  
  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="sc3"><span class="coMULTI">&lt;!-- saved from:<br />
http://www.monde-diplomatique.fr/2002/03/PARSONS/16228 --&gt;</span></span>
  </div>
  
  </div>
</p>
<p>
  Du coup, rien de plus simple, aidé de l'ami <kbd>awk</kbd>, de créer un petit script qui ouvrira l'URL d'origine du .war :
  
  <div class='code-block code-block-fragment'>
  <div class='container'>
  <span class="co0">#! /bin/sh</span><br />
<br />
<span class="co0"># extraction de l'URL</span><br />
<span class="re2">url=</span>$<span class="br0">&#40;</span><a target="blank" href="http://pwet.fr/man/linux/commandes/tar"><span class="kw2">tar</span></a> -Ozxf <span class="st0">&quot;$1&quot;</span> index.html <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/head"><span class="kw2">head</span></a> <span class="nu0">-2</span> <span class="sy0">|</span> <a target="blank" href="http://pwet.fr/man/linux/commandes/awk"><span class="kw2">awk</span></a> <span class="st0">'/http/ { print $1 }'</span><span class="br0">&#41;</span><br />
<br />
<span class="co0"># Affichage de la page dans firefox</span><br />
firefox <span class="re1">$url</span>
  </div>
  <div class='caption'>~/.gnome2/nautilus-scripts/Ouvrir l&#039;URL de la source</div>
  </div>
</p>
<p>
  Simple et efficace. Stocké dans le dossier de scripts de Nautilus, l'action est directement disponible par click-droit sur un fichier. Ici <kbd>tar</kbd> est paramétré pour décompresser l'archive (<kbd>zxf</kbd>) mais dans la sortie standard (<kbd>O</kbd>) et seulement le fichier <kbd>index.html</kbd>. <kbd>head</kbd> récupère les deux premières lignes (<kbd>-n 2</kbd>) qui nous intéressent et <kbd>awk</kbd> recherche le motif <kbd>http</kbd> et lorsqu'il le trouve renvoie le première argument de la ligne sélectionnée. 
</p>
<p>
  Après connaissant le truc, rien n'empêche d'aller plus loin en ouvrant une série de fichiers war via la commande <kbd>find</kbd> pour les Scrapbooker en masse. 
</p>


	<a name='chapter_3'></a>
  <h2>Conclusion</h2>
	
<p>
  Voilà, sans doute encore un bon exemple de ce qu'un petit script tout bête peut apporter dans la vie de tous les jours. 
</p>
    ]]></content>
  </entry>
</feed>
