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); |