diff options
Diffstat (limited to 'maintainers/scripts/nix-generate-from-cpan.pl')
-rwxr-xr-x | maintainers/scripts/nix-generate-from-cpan.pl | 10 |
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"; |