#!/usr/bin/perl

# script 'nettoyant' le fichier de configuration 'extensions.rdf' de 'firefox'
# en enlevant les balises qui commencent par <RDF:Description RDF:about="rdf:#
# qui sont des balises 'complémentaires', qui prennent de la place, mais ne sont pas nécessaires

$id = `whoami`;
chomp $id;
if ($id eq "root") {
	print "Il ne faut PAS être 'root' pour manipuler des fichiers spécifiques à un utilisateur.\n";
	exit;
}

$directory = shift;
# 1° param à la ligne de commande
chomp $directory;
# enlever le passage à la ligne (= \n = newline) s'il existe


# nom du répertoire 'firefox'
$ffdir = `ls -d ~/.mozilla/firefox/*.default`;
chomp $ffdir;


if ($directory eq "") {
	$directory = "$ffdir";
	# valeur par défaut
	print "Utilisation du répertoire par défaut (celui de firefox) $ffdir\n";
}

# noms des fichiers
$rdf = "$directory/extensions.rdf";
$rdfmod = "$directory/extensions.mod.rdf";

if ( ! -f $rdf ) {
	print "$rdf n'existe pas dans ce répertoire\n";
	exit;
}


# rdf

open(IN, "<$rdf");
open(OUT, ">$rdfmod");
while (<IN>) {
	$ligne_existante = $_;
	$line_nb++;
	if (/<RDF:Description RDF:about="rdf:#/) { 
# 	<RDF:Description RDF:about="rdf:#
	print "$line_nb $ligne_existante";
	  $skip = "true";
	}
	if ($skip eq "true") { 
	  if (/<\/RDF:Description>/) {
	  # balise fermante 'normale'
	print "$line_nb $ligne_existante";
	    $skip = "false";
	    next;
	  } elsif (/\/>/) {
	  # balise 'autofermante' 
	print "$line_nb $ligne_existante";
	    $skip = "false";
	    next;
	  }
	} else {
	  print OUT $ligne_existante;
	}
	
}
close(IN);
close(OUT);


exit;
