diff options
Diffstat (limited to 'po/desk.pl')
-rwxr-xr-x | po/desk.pl | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/po/desk.pl b/po/desk.pl new file mode 100755 index 0000000000..08a2a18a56 --- /dev/null +++ b/po/desk.pl @@ -0,0 +1,118 @@ +#!/usr/bin/perl -w + +# GNOME entry finder utility. +# (C) 2000 The Free Software Foundation +# +# Author(s): Kenneth Christiansen + + +$VERSION = "1.0.0 beta 5"; +$LANG = $ARGV[0]; +$OPTION2 = $ARGV[1]; +$SEARCH = "Name"; + +if (! $LANG){ + print "desk.pl: missing file arguments\n"; + print "Try `desk.pl --help' for more information.\n"; + exit; +} + +if ($OPTION2){ + $SEARCH=$OPTION2; +} + +if ($LANG){ + +if ($LANG=~/^-(.)*/){ + + if ("$LANG" eq "--version" || "$LANG" eq "-V"){ + print "GNOME Entry finder $VERSION\n"; + print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n"; + print "Copyright (C) 2000 Free Software Foundation, Inc.\n"; + print "This is free software; see the source for copying conditions. There is NO\n"; + print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"; + exit; + } + + elsif ($LANG eq "--help" || "$LANG" eq "-H"){ + print "Usage: ./desk.pl [OPTIONS] ...LANGCODE ENTRY\n"; + print "Checks .desktop and alike files for missing translations.\n\n"; + print " -V, --version shows the version\n"; + print " -H, --help shows this help page\n"; + print "\nReport bugs to <kenneth\@gnome.org>.\n"; + exit; + } + + else{ + print "desk.pl: invalid option -- $LANG\n"; + print "Try `desk.pl --help' for more information.\n"; + exit; + } +} + +else{ + + $a="find ../ -print | egrep '.*\\.(desktop|soundlist" + ."|directory)' "; + + $b="find ../ -print | egrep '.*\\.(desktop|soundlist" + ."|directory)' "; + + print "Searching for missing $SEARCH\[$LANG\] entries...\n"; + + open(BUF1, "$a|"); + open(BUF2, "$b|"); + + @buf1 = <BUF1>; + foreach my $file (@buf1){ + open FILE, "<$file"; + while (<FILE>) { + if ($_=~/$SEARCH\[$LANG\]\=/o){ + $file = unpack("x2 A*",$file) . "\n"; + push @buff1, $file; + last; + } + } + } + + @buf2 = <BUF2>; + foreach my $file (@buf2){ + open FILE, "<$file"; + while (<FILE>) { + if ($_=~/$SEARCH\=/o){ + $file = unpack("x2 A*",$file) . "\n"; + push @buff2, $file; + last; + } + } + } + + @bufff1 = sort (@buff1); + @bufff2 = sort (@buff2); + + my %in2; + foreach (@bufff1) { + $in2{$_} = 1; + } + + foreach (@bufff2){ + if (!exists($in2{$_})){ + push @result, $_ } + } + } + + open(OUT1, ">MISSING.$LANG.$SEARCH"); + print OUT1 @result ; + close OUT1; + + + stat("MISSING.$LANG.$SEARCH"); + print "\nWell, you need to fix these:\n\n" if -s _; + print @result if -s _; + print "\nThe list is saved in MISSING.$LANG.$SEARCH\n" if -s _; + print "\nWell, it's all perfect! Congratulation!\n" if -z _; + unlink "MISSING.$LANG.$SEARCH" if -z _; + exit; +} + + |