| Index: debian.chrome/scripts/module-check | 
| diff --git a/debian.chrome/scripts/module-check b/debian.chrome/scripts/module-check | 
| new file mode 100755 | 
| index 0000000000000000000000000000000000000000..c754ea368cfbedf9de6f380ecc870e341cdf0c10 | 
| --- /dev/null | 
| +++ b/debian.chrome/scripts/module-check | 
| @@ -0,0 +1,120 @@ | 
| +#!/usr/bin/perl -w | 
| + | 
| +$flavour = shift; | 
| +$prev_abidir = shift; | 
| +$abidir = shift; | 
| +$skipmodule = shift; | 
| + | 
| +print "II: Checking modules for $flavour..."; | 
| + | 
| +if (-f "$prev_abidir/ignore.modules" | 
| +    or -f "$prev_abidir/$flavour.ignore.modules") { | 
| +	print "explicitly ignoring modules\n"; | 
| +	exit(0); | 
| +} | 
| + | 
| +if (not -f "$abidir/$flavour.modules" or not -f | 
| +    "$prev_abidir/$flavour.modules") { | 
| +	print "previous or current modules file missing!\n"; | 
| +	print "   $abidir/$flavour.modules\n"; | 
| +	print "   $prev_abidir/$flavour.modules\n"; | 
| +	if (defined($skipmodule)) { | 
| +		exit(0); | 
| +	} else { | 
| +		exit(1); | 
| +	} | 
| +} | 
| + | 
| +print "\n"; | 
| + | 
| +my %modules; | 
| +my %modules_ignore; | 
| +my $missing = 0; | 
| +my $new = 0; | 
| +my $errors = 0; | 
| + | 
| +# See if we have any ignores | 
| +if (-f "$prev_abidir/../modules.ignore") { | 
| +	my $ignore = 0; | 
| +	open(IGNORE, "< $prev_abidir/../modules.ignore") or | 
| +		die "Could not open $prev_abidir/../modules.ignore"; | 
| +	print "   reading modules to ignore..."; | 
| +	while (<IGNORE>) { | 
| +		chomp; | 
| +		next if /\s*#/; | 
| +		$modules_ignore{$_} = 1; | 
| +		$ignore++; | 
| +	} | 
| +	close(IGNORE); | 
| +	print "read $ignore modules.\n"; | 
| +} | 
| + | 
| +# Read new modules first | 
| +print "   reading new modules..."; | 
| +$new_count = 0; | 
| +open(NEW, "< $abidir/$flavour.modules") or | 
| +	die "Could not open $abidir/$flavour.modules"; | 
| +while (<NEW>) { | 
| +	chomp; | 
| +	$modules{$_} = 1; | 
| +	$new_count++; | 
| +} | 
| +close(NEW); | 
| +print "read $new_count modules.\n"; | 
| + | 
| +# Now the old modules, checking for missing ones | 
| +print "   reading old modules..."; | 
| +$old_count = 0; | 
| +open(OLD, "< $prev_abidir/$flavour.modules") or | 
| +	die "Could not open $prev_abidir/$flavour.modules"; | 
| +while (<OLD>) { | 
| +	chomp; | 
| +	if (not defined($modules{$_})) { | 
| +		print "\n" if not $missing; | 
| +		$missing++; | 
| +		if (not defined($modules_ignore{$_})) { | 
| +			print "      MISS: $_\n"; | 
| +			$errors++; | 
| +		} else { | 
| +			print "      MISS: $_ (ignored)\n"; | 
| +		} | 
| +	} else { | 
| +		$modules{$_}++; | 
| +	} | 
| +	$old_count++; | 
| +} | 
| +close(OLD); | 
| +# Check for new modules | 
| +foreach $mod (keys(%modules)) { | 
| +	if ($modules{$mod} < 2) { | 
| +		print "\n" if not $missing and not $new; | 
| +		print "      NEW : $mod\n"; | 
| +		$new++; | 
| +	} | 
| +} | 
| +if ($new or $missing) { | 
| +	print "      read $old_count modules : new($new)  missing($missing)\n"; | 
| +} else { | 
| +	print "read $old_count modules.\n"; | 
| +} | 
| + | 
| + | 
| +# Let's see where we stand... | 
| +if ($errors) { | 
| +	if (defined($skipmodule)) { | 
| +		print "WW: Explicitly asked to ignore failures (probably not good)\n"; | 
| +	} else { | 
| +		print "EE: Missing modules (start begging for mercy)\n"; | 
| +		exit 1 | 
| +	} | 
| +} | 
| + | 
| +if ($new) { | 
| +	print "II: New modules (you've been busy, wipe the poop off your nose)\n"; | 
| +} else { | 
| +	print "II: No new modules (hope you're happy, slacker)\n"; | 
| +} | 
| + | 
| +print "II: Done\n"; | 
| + | 
| +exit(0); | 
|  |