Artisan Numérique

/bureau/documents/navigateurs/ Récupérer ses fichiers WAR

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 Konqueror, 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...

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 ScrapBook 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.

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 Konqueror, 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...

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 ScrapBook 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.

Lire le fichier WAR

Techniquement les .war sont des archives TAR, compressées par gzip. 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 index.html à 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 :

#! /bin/sh

# Création du dossier temporaire d'extraction
cd $TMPDIR
working_path=$(mktemp -d)
mkdir $working_path 
cd $working_path

# extraction de l'archive
tar -zxf "$1"

# Affichage de la page dans firefox
firefox index.html
~/.gnome2/nautilus-scripts/Ouvrir l'archive

A noter que cela aurait aussi bien pu être Epiphany ou tout autre navigateur.

Lire l'URL du fichier WAR

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.

C'est un peu en désespoir de cause que j'ai lancé un vi 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 :

<!-- saved from:
http://www.monde-diplomatique.fr/2002/03/PARSONS/16228 -->

Du coup, rien de plus simple, aidé de l'ami awk, de créer un petit script qui ouvrira l'URL d'origine du .war :

#! /bin/sh

# extraction de l'URL
url=$(tar -Ozxf "$1" index.html | head -2 | awk '/http/ { print $1 }')

# Affichage de la page dans firefox
firefox $url
~/.gnome2/nautilus-scripts/Ouvrir l'URL de la source

Simple et efficace. Stocké dans le dossier de scripts de Nautilus, l'action est directement disponible par click-droit sur un fichier. Ici tar est paramétré pour décompresser l'archive (zxf) mais dans la sortie standard (O) et seulement le fichier index.html. head récupère les deux premières lignes (-n 2) qui nous intéressent et awk recherche le motif http et lorsqu'il le trouve renvoie le première argument de la ligne sélectionnée.

Après connaissant le truc, rien n'empêche d'aller plus loin en ouvrant une série de fichiers war via la commande find pour les Scrapbooker en masse.

Conclusion

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.