check-glade-visible 1.74 KB
Newer Older
Morten Welinder's avatar
Morten Welinder committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
#!/usr/bin/perl -w
#
#  Gnumeric
#
#  Copyright (C) 2001 Morten Welinder.
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License as
#  published by the Free Software Foundation; either version 2 of the
#  License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this library; if not, write to the Free Software
#  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#  Author: Morten Welinder <terra@diku.dk>

use strict;

my $exitcode = 0;

die "$0: must be run from top-level directory.\n"
    unless -r "configure.in" && -r 'ChangeLog';

my %exceptions =
    (
     );


my @files;
{
    local (*FIND);
    open (*FIND, "find . '(' -name \*.glade -type f -print ')' -o '(' -type d '(' -name CVS -o -name intl -o -name macros ')' -prune ')' |")
	or die "$0: cannot execute find: $!\n";
    foreach my $filename (<FIND>) {
	chomp $filename;
	$filename =~ s|^\./||;
	next if $exceptions{$filename};
	push @files, $filename;
    }
    close (*FIND);
}


FILE:
    foreach my $filename (@files) {
	local (*GREP);
	open (*GREP, "grep -c '<visible>False</visible>' '$filename' /dev/null 2>/dev/null |")
	    or die "$0: cannot execute grep: $!\n";
	while (<GREP>) {
	    chomp;
	    last if m|^/dev/null:|;
	    if (/:0$/) {
		print STDERR "File `$filename' does not set the visible attribute.\n";
		$exitcode = 1;
		next FILE;
	    }
	}
	close (*GREP);
    }

exit $exitcode;