trisquel-icecat/icecat/debian/build/dump-langpack-control-entries.pl

51 lines
1.3 KiB
Perl

#!/usr/bin/perl
use strict;
use warnings;
my $lp_avail_desc;
my $lp_unavail_desc;
my %all;
my %shipped;
{
my $file;
local $/=undef;
open($file, "debian/control.langpacks") or die "Couldn't find control.langpacks";
$lp_avail_desc = <$file>;
open($file, "debian/control.langpacks.unavail") or die "Couldn't find control.langpacks.unavail";
$lp_unavail_desc = <$file>;
}
open(my $all_file, "debian/config/locales.all") or die "Failed to open debian/config/locales.all";
open(my $shipped_file, "debian/config/locales.shipped") or die "Failed to open debian/config/locales.shipped";
while (<$all_file>) {
chomp($_);
/^([^:#]*):([^:]*)$/ && do {
my $pkgname = $1;
my $desc = $2;
if ($desc eq "") { die "Malformed locales.all"; }
$all{$pkgname} = $desc;
}
}
while (<$shipped_file>) {
chomp($_);
/^([^:#]*):([^:]*)$/ && do {
my $locale = $1;
my $pkgname = $2;
if ($pkgname eq "") { die "Malformed locales.shipped"; }
$shipped{$pkgname} = 1;
}
}
close($all_file);
close($shipped_file);
foreach my $pkg (sort(keys(%all))) {
my $entry = exists $shipped{$pkg} ? $lp_avail_desc : $lp_unavail_desc;
$entry =~ s/\@LANGCODE\@/$pkg/g;
$entry =~ s/\@LANG\@/$all{$pkg}/g;
print $entry;
}