aboutsummaryrefslogtreecommitdiffstats
path: root/find-lang.pl
diff options
context:
space:
mode:
Diffstat (limited to 'find-lang.pl')
-rw-r--r--find-lang.pl65
1 files changed, 47 insertions, 18 deletions
diff --git a/find-lang.pl b/find-lang.pl
index 8b4f007..d87bef9 100644
--- a/find-lang.pl
+++ b/find-lang.pl
@@ -36,46 +36,52 @@ File::Find::find(
my $file = substr($File::Find::name, length($buildroot));
-f $File::Find::name or return;
debug("next file is %s", $file);
- my ($pkg, $lang, $parent);
my $langfile = $file;
if ($file =~ m:^((.*/share/locale)/([^/@]+)[^/]*).*/([^/]+)\.mo:) {
if ($withoutmo) {
return;
}
- ($pkg, $lang, $parent, $langfile) = ($4, $3, $2, $1);
- } elsif ($file =~ m:^((.*/gnome/help)/([^/]+)/([^/]+)).*$:) {
+ my ($pkg, $lang, $parent, $langfile) = ($4, $3, $2, $1);
+ if (pkg_match($pkg)) {
+ parent_to_own($langfile, $file, $lang);
+ }
+ } elsif ($file =~ m:^((.*/gnome/help)/([^/]+)/([^/]+)).*:) {
if (!$withgnome) {
return;
}
- ($pkg, $lang, $parent, $langfile) = ($3, $4, $2, $1);
- } elsif ($file =~ m:^((.*/doc/kde)/HTML/([^/@]+)[^/]*)/([^/]+)/.*$:) {
+ my ($pkg, $lang, $parent, $langfile) = ($3, $4, $2, $1);
+ if (pkg_match($pkg)) {
+ parent_to_own($langfile, $file, $lang);
+ }
+ } elsif ($file =~ m:^((.*/doc/kde)/HTML/([^/@]+)[^/]*)/([^/]+)/.*:) {
if (!$withkde) {
return;
}
- ($pkg, $lang, $parent, $langfile) = ($4, $3, $2, $1);
- } elsif ($file =~ m:^((.*/doc)/HTML/([^/@]+)[^/]*)/([^/_]+).*$:) {
+ my ($pkg, $lang, $parent, $langfile) = ($4, $3, $2, $1);
+ if (pkg_match($pkg)) {
+ parent_to_own($langfile, $file, $lang);
+ }
+ } elsif ($file =~ m:^((.*/doc)/HTML/([^/@]+)[^/]*)/([^/_]+).*:) {
if (!$withhtml) {
return;
}
- ($pkg, $lang, $parent, $langfile) = ($4, $3, $2, $1);
- } elsif ($file =~ m:^((/+usr/share/man)/([^/@\.]+)[^/]*)/man[^/]+/([^/.]+)\.\d[^/]*$:) {
+ my ($pkg, $lang, $parent, $langfile) = ($4, $3, $2, $1);
+ if (pkg_match($pkg)) {
+ parent_to_own($langfile, $file, $lang);
+ }
+ } elsif ($file =~ m:^((/+usr/share/man)/([^/@\.]+)[^/]*)/man[^/]+/([^/.]+)\.\d[^/]*:) {
if (!$withman) {
return;
}
- ($pkg, $lang, $parent, $langfile) = ($4, $3, undef, $1);
+ my ($pkg, $lang, $parent, $langfile) = ($4, $3, undef, $1);
$file =~ s/\.[^\.]+$//;
$file .= '.*';
+ if (pkg_match($pkg)) {
+ parent_to_own($langfile, $file, $lang);
+ }
} else {
return;
}
- if (! ((grep { $_ eq $pkg } @searchname) || $allname)) {
- return;
- }
-
- parent_to_own($parent, $langfile, $lang) if ($parent);
- $finallist{$langfile}{'lang'}{$lang} = 1;
- debug("File %s will be %s", $langfile, $lang);
-
},
$buildroot || '/'
);
@@ -100,14 +106,37 @@ close($hlang);
exit(0);
+sub pkg_match {
+ my ($pkg) = @_;
+ if ($allname) { return 1 };
+ if (grep { $_ eq $pkg } @searchname) {
+ return 1;
+ }
+ return;
+}
+
sub parent_to_own {
my ($parent, $file, $lang) = @_;
+ debug("parent_to_own: $parent, $file, $lang");
+ if ($allname) {
+ #my @subdir = grep { $_ } split('/', substr($file, length($parent)));
+ #$parent .= '/' . shift(@subdir);
+ $finallist{$parent}{'lang'}{$lang} = 1;
+ debug("Parent %s will be %s", $parent, $lang);
+ } else {
my @subdir = grep { $_ } split('/', substr($file, length($parent)));
pop(@subdir);
+ $finallist{$parent}{dir} = 1;
+ $finallist{$parent}{'lang'}{$lang} = 1;
+ debug("Parent %s will be %s", $parent, $lang);
while (my $part = shift(@subdir)) {
$parent .= "/$part";
$finallist{$parent}{dir} = 1;
$finallist{$parent}{'lang'}{$lang} = 1;
debug("Parent %s will be %s", $parent, $lang);
}
+ $finallist{$file}{'lang'}{$lang} = 1;
+ debug("Parent %s will be %s", $file, $lang);
+
+ }
}