#/usr/bin/perl
use Encode;

die "Usage: conversion_iso.pl DossierEnEntree DossierEnSortie\n
Le programme prend en argument un dossier contenant des fichiers textes et un dossier sortie.
La conversion se fait de l'utf-8 vers de l'ISO-8859-1\n\n" if (@ARGV < 1) || (! -d $ARGV[0]) || (! -d $ARGV[1]);


#créer le dossier et supprimer le contenu existant
my $res=$ARGV[1];
$res=~ s/[\/]$//;

if (! -e $res)
{
	mkdir($res) or die ("Problème avec la création du répertoire de $rep");
}
else
{
	print ("Supprimer les fichiers existants >> ");
	opendir(DIR, $res) or die "Erreur d'ouverture de repertoire: $!\n";
	my @tobedeleted = readdir(DIR);
    
	foreach my $scrubbed (@tobedeleted)
	{
		unlink $res.$scrubbed;
	}
		closedir(DIR);
	print ("Done\n");

}

my $path="$ARGV[0]";
$path=~ s/[\/]$//;

opendir(REP, $path) or die "Problème d'ouverture du répertoire : $!\n";  
my @fichiers = readdir(REP);
closedir(REP);

#Pour chaque fichier txt conversion de l'utf-8 vers de l'ISO Latin 
foreach my $fichier(@fichiers)
{
	if ($fichier=~/\.txt$/) # uniquement les fichiers TXT
	{
		
		if (!open(FILE,"$path/$fichier"))
			{ 
				die "Problème a la lecture du fichier $path/$fichier";
			}
		
		my $contenu="";
		print "$fichier\n";
		while (my $line=<FILE>)
		{
			$line=~s/encoding="utf-8"/encoding="iso-8859-1"/g;
			$contenu.=$line;
		}
		close(FILE);
		
		#décoder et ré-encoder 
		$contenu =decode("utf-8", $contenu);
		$contenu=encode("iso-8859-1", $contenu);

		
		#Ecrire dans le fichier de sortie en ISO-8859-1
		if (!open (FILE,">:encoding(iso-8859-1)","$res/$fichier")) 
			{ 
				die "Problème a l'ouverture du fichier $res/$fichier.txt";
			}
		
		print FILE $contenu;
		
		close(FILE);
	}
}