#!/usr/bin/perl
#
# Rechercher le nom des polices utilisées dans un vectoriel.
#
# $Id       : svg-polices.pl $
# $HeadURL  : http://bobotig.fr/contenu/contrib/scripts $
# $Source   : http://bobotig.fr/contenu/contrib/scripts $
# $Author   : BoboTiG $
# $Revision : 3 $
# $Date     : 2011/08/24 $
#
# Usage : perl svg-polices.pl <fichier[.svg]>
#
# Historique :
#	24 août 2011 :
#		- code revu et amélioré
#	23 avril 2010 :
#		- correction du problème lié aux accents
#		- correction du code afin de chercher les polices dans les balises mal formatées
#	08 septembre 2009 :
#		- version initiale
#


use 5.010;
use autodie 'close';
use strict;
use warnings;


# Variables
our $VERSION = 0.3;
my $file = shift || undef;
my %polices;


# C'est parti mon kiki !
if ( ! defined $file || ! -f $file ) {
	say 'Usage : perl svg-polices.pl <fichier[.svg]>';
	exit 1;
}
say ' ~ svg-polices.pl v.'.$VERSION.' { BoboTiG }';
say ' - Fichier : '.$file;
if ( open my $F, '<', $file ) {
	while ( <$F> ) {
		my (@polices) = $_ =~ m/
			font-family
			[:=]                      # Delimiter could be either : or =
			['"]*                     # Could have quotes
			(
				(?:\w+[-_ ]*)         # Do not capture the 2nd (?:...)
			*)                        # Get the font name
		/simgx;
		#say join ' -- ', @polices if ( scalar @polices > 0 );
		if ( scalar @polices > 0) { map { ++$polices{$_} } @polices; }
	}
	close $F;
}
given ( scalar keys(%polices) ) {
	when ( $_ == 0 ) {
		say ' - Aucune police trouvée.';
	}
	when ( $_ == 1 ) {
		say ' + Police trouvée :';
		continue;
	}
	when ( $_ > 1 ) {
		say ' + Polices trouvées :';
		continue;
	}
	default {
		for my $police ( keys %polices ) {
			say "\t:: ".$police;
		}
	}
}
exit 0;

