From 9b20cbd6d230dc3a0b61b57be1896a18853e2f7f Mon Sep 17 00:00:00 2001 From: Chris Shoemaker Date: Thu, 2 Feb 2006 18:47:34 +0000 Subject: [PATCH] Allow make-gnucash-potfiles to run from directories other than srcdir. Better documentation of exactly what m-g-potfiles excludes, and a general clean-up of the script. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13079 57a11ea4-9604-0410-9ed3-97b8803252fd --- Makefile.am | 1 + make-gnucash-potfiles.in | 90 ++++++++++++---------------------------- 2 files changed, 28 insertions(+), 63 deletions(-) diff --git a/Makefile.am b/Makefile.am index 48d5a4e5e6..5cd695291a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -92,6 +92,7 @@ make-gnucash-patch: make-gnucash-patch.in Makefile make-gnucash-potfiles: make-gnucash-potfiles.in Makefile rm -f $@.tmp sed < $< > $@.tmp \ + -e 's:@-SRCDIR-@:${srcdir}:g' \ -e 's:@-PERL-@:${PERL}:g' chmod +x $@.tmp mv $@.tmp $@ diff --git a/make-gnucash-potfiles.in b/make-gnucash-potfiles.in index 7660e9a4e8..8440c83fe9 100644 --- a/make-gnucash-potfiles.in +++ b/make-gnucash-potfiles.in @@ -2,86 +2,50 @@ # -*- perl -*- # # This perl script is used to make po/POTFILES.in, the list -# of C files to be searched for translatable strings. +# of files to be searched for translatable strings. +# +# It will exclude any files listed in po/POTFILES.skip or that match the +# regexp patterns listed in @ignorepatterns. # # Author: Dave Peticolas use strict; - use File::Basename; -my @possible_files = `find src -name '*.c' -o -name '*.glade' \\ +# Note: These are perl regexp patterns, *not* normal shell wildcards! +my @ignorepatterns = ('gw-', 'test', 'experimental'); + +my @skipped_files = `grep -v \# @-SRCDIR-@/po/POTFILES.skip`; + +my @possible_files = `find @-SRCDIR-@/src -name '*.c' -o -name '*.glade' \\ -o -name '*.desktop.in' -o -name '*.keys.in' \\ -o -name '*.schemas.in' |sort`; ## For perl files add the following: # -o -name '*.pl' -my @skipped_files = `grep -v \# po/POTFILES.skip`; - -chomp(my $cwd = `pwd`); - -# Since we don't have any cvsignore files anymore, add patterns here -# that will emulate the old behaviour. Note: These are perl regexp -# patterns, *not* normal shell wildcards! -my @ignorepatterns = ('gw-', 'test', 'experimental'); +print "# This is a list of files which contain translatable strings.\n"; +print "# This file was generated by ../make-gnucash-potfiles.\n"; my %ignores; - -## Unfortunately this won't work anymore since we don't have .cvsignore -## files anymore. -# my @cvsignores = `find src -name '.cvsignore'`; -# foreach my $one_ignore (@cvsignores) { -# chomp($one_ignore); -# my ($name, $path) = fileparse($one_ignore); -# $path =~ s/^\.\///; -# open (IG, $one_ignore); -# chdir $path; -# foreach my $fl () { -# chomp $fl; -# next unless $fl; -# my @matches = glob ($fl); -# foreach my $match (@matches) { -# chomp($match); -# next unless $match; -# $ignores{$path . $match} = 1; -# } -# } -# close (IG); -# chdir $cwd; -# } - -print "# List of files which containing translatable strings.\n"; -print "# This file was generated by ../make-gnucash-potfiles.in.\n"; -print "\n"; - foreach my $file (@possible_files) { - chomp($file); - my ($name, $path) = fileparse($file); - $path =~ s/^\.\///; - - foreach my $one_ignore (@ignorepatterns, @skipped_files) { - chomp($one_ignore); - next unless $one_ignore; + chomp($file); + my ($name, $path) = fileparse($file); + $path =~ s/^\.\///; - if ($file =~ m/$one_ignore/) { - $ignores{$path . $name} = 1; - } + foreach my $pat (@ignorepatterns, @skipped_files) { + chomp($pat); + next unless $pat; - if ($name =~ m/$one_ignore/) { - $ignores{$path . $name} = 1; - #print "not $name\n"; - } - if ($path =~ m/$one_ignore/) { - $ignores{$path . $name} = 1; - #print "not $name\n"; + if ($file =~ m/$pat/ || $name =~ m/$pat/ || $path =~ m/$pat/) { + $ignores{$path . $name} = 1; + } } - } - next if $ignores{$path . $name}; - - # Ignore unreadable files, e.g. dangling symlinks - next unless (-r $path . $name); - - print $path . $name . "\n"; + next if $ignores{$path . $name}; + + # Ignore unreadable files, e.g. dangling symlinks + next unless (-r $path . $name); + + print $path . $name . "\n"; } # These are also added, even though they are outside of src/