summary refs log tree commit diff
path: root/maintainers/scripts/nix-generate-from-cpan.pl
diff options
context:
space:
mode:
Diffstat (limited to 'maintainers/scripts/nix-generate-from-cpan.pl')
-rwxr-xr-xmaintainers/scripts/nix-generate-from-cpan.pl10
1 files changed, 8 insertions, 2 deletions
diff --git a/maintainers/scripts/nix-generate-from-cpan.pl b/maintainers/scripts/nix-generate-from-cpan.pl
index 86749bcac69..1eb6c51a16a 100755
--- a/maintainers/scripts/nix-generate-from-cpan.pl
+++ b/maintainers/scripts/nix-generate-from-cpan.pl
@@ -2,7 +2,7 @@
 
 use strict;
 use CPANPLUS::Backend;
-use YAML;
+use YAML::XS;
 use JSON;
 
 my $module_name = $ARGV[0];
@@ -50,7 +50,13 @@ print STDERR "unpacked to: $pkg_path\n";
 
 my $meta;
 if (-e "$pkg_path/META.yml") {
-    $meta = YAML::LoadFile("$pkg_path/META.yml");
+    eval {
+	$meta = YAML::XS::LoadFile("$pkg_path/META.yml");
+    };
+    if ($@) {
+	system("iconv -f windows-1252 -t utf-8 '$pkg_path/META.yml' > '$pkg_path/META.yml.tmp'");
+	$meta = YAML::XS::LoadFile("$pkg_path/META.yml.tmp");
+    }
 }
 
 print STDERR "metadata: ", encode_json($meta), "\n";