diff --git "a/outils/extrait-xml-\303\251diteur/extraitXmlEditeur.pl" "b/outils/extrait-xml-\303\251diteur/extraitXmlEditeur.pl" index 3bd364e..d9fa82d 100755 --- "a/outils/extrait-xml-\303\251diteur/extraitXmlEditeur.pl" +++ "b/outils/extrait-xml-\303\251diteur/extraitXmlEditeur.pl" @@ -16,7 +16,7 @@ " $programme -f fichier [ -e expression_régulière ] [ -l log ] [ -s ] \n" . " $programme -h \n"; -my $version = "1.5.1"; +my $version = "1.5.2"; my $dateModif = "2 Mai 2018"; # Variables nécessaires pour les options @@ -296,14 +296,19 @@ my @cibles = grep(/^$debut.xml\z/i, @xml); if ( $#cibles == 0 ) { my ($racine) = $cibles[0] =~ m|^(?:.*/)?(.+)\.xml\z|o; - system "unzip -jo \"$directory/$file\" \"$cibles[0]\" > /dev/null"; + my $retour = system "unzip -jo \"$directory/$file\" \"$cibles[0]\" > /dev/null"; + if ( $retour ) { + my $erreur = ($retour - ($retour % 256)) / 256; + print "$programme : erreur $erreur d’ \"unzip\" pour fichier \"$file\"\n"; + return 5; + } if ( -f "$racine.xml" ) { - system "mv \"$racine.xml\" \"$directory/$base.xml\""; - efface("$directory/$file") if $supprime; + $retour = system "mv \"$racine.xml\" \"$directory/$base.xml\""; + efface("$directory/$file") if $supprime and not $retour; } elsif ( -f "$racine.XML" ) { - system "mv \"$racine.XML\" \"$directory/$base.xml\""; - efface("$directory/$file") if $supprime; + $retour = system "mv \"$racine.XML\" \"$directory/$base.xml\""; + efface("$directory/$file") if $supprime and not $retour; } else { print LOG "Erreur : pas de fichier \"$racine.xml\" extrait de \"$file\"\n"; @@ -319,14 +324,19 @@ @cibles = grep(/^$debut.xml\z/i, @xml); if ( $#cibles == 0) { my ($racine) = $cibles[0] =~ m|^(?:.*/)?(.+)\.xml\z|o; - system "unzip -jo \"$directory/$file\" \"$cibles[0]\" > /dev/null"; + my $retour = system "unzip -jo \"$directory/$file\" \"$cibles[0]\" > /dev/null"; + if ( $retour ) { + my $erreur = ($retour - ($retour % 256)) / 256; + print "$programme : erreur $erreur d’ \"unzip\" pour fichier \"$file\"\n"; + return 5; + } if ( -f "$racine.xml" ) { - system "mv \"$racine.xml\" \"$directory/$base.xml\""; - efface("$directory/$file") if $supprime; + $retour = system "mv \"$racine.xml\" \"$directory/$base.xml\""; + efface("$directory/$file") if $supprime and not $retour; } elsif ( -f "$racine.XML" ) { - system "mv \"$racine.XML\" \"$directory/$base.xml\""; - efface("$directory/$file") if $supprime; + $retour = system "mv \"$racine.XML\" \"$directory/$base.xml\""; + efface("$directory/$file") if $supprime and not $retour; } else { print LOG "Erreur : pas de fichier \"$racine.xml\" extrait de \"$file\"\n"; @@ -336,10 +346,15 @@ if ( $expression and $xml[0] =~ m|^((?:.*/)?(.*$expression))| ) { my $entree = $1; my $xml = $2; - system "unzip -jo \"$directory/$file\" \"$entree\" > /dev/null"; + my $retour = system "unzip -jo \"$directory/$file\" \"$entree\" > /dev/null"; + if ( $retour ) { + my $erreur = ($retour - ($retour % 256)) / 256; + print "$programme : erreur $erreur d’ \"unzip\" pour fichier \"$file\"\n"; + return 5; + } if ( -f "$xml" ) { - system "mv \"$xml\" \"$directory/$base.xml\""; - efface("$directory/$file") if $supprime; + $retour = system "mv \"$xml\" \"$directory/$base.xml\""; + efface("$directory/$file") if $supprime and not $retour; } else { print LOG "Erreur : pas de fichier \"$xml\" extrait de \"$file\"\n"; @@ -347,10 +362,15 @@ } else { my ($entree, $xml) = $xml[0] =~ m|^((?:.*/)?(.+\.n?xml.*))|io; - system "unzip -jo \"$directory/$file\" \"$entree\" > /dev/null"; + my $retour = system "unzip -jo \"$directory/$file\" \"$entree\" > /dev/null"; + if ( $retour ) { + my $erreur = ($retour - ($retour % 256)) / 256; + print "$programme : erreur $erreur d’ \"unzip\" pour fichier \"$file\"\n"; + return 5; + } if ( -f "$xml" ) { - system "mv \"$xml\" \"$directory/$base.xml\""; - efface("$directory/$file") if $supprime; + $retour = system "mv \"$xml\" \"$directory/$base.xml\""; + efface("$directory/$file") if $supprime and not $retour; } else { print LOG "Erreur : pas de fichier \"$xml\" extrait de \"$file\"\n"; @@ -364,10 +384,15 @@ } elsif ( $#xml == 0 ) { my ($entree, $xml) = $xml[0] =~ m|^((?:.*/)?(.+\.xml))|; - system "unzip -jo \"$directory/$file\" \"$entree\" > /dev/null"; + my $retour = system "unzip -jo \"$directory/$file\" \"$entree\" > /dev/null"; + if ( $retour ) { + my $erreur = ($retour - ($retour % 256)) / 256; + print "$programme : erreur $erreur d’ \"unzip\" pour fichier \"$file\"\n"; + return 5; + } if ( -f "$xml" ) { - system "mv \"$xml\" \"$directory/$base.xml\""; - efface("$directory/$file") if $supprime; + $retour = system "mv \"$xml\" \"$directory/$base.xml\""; + efface("$directory/$file") if $supprime and not $retour; } else { print LOG "Erreur : pas de fichier \"$xml\" extrait de \"$file\"\n";