~ubuntu-branches/ubuntu/maverick/adblock-plus/maverick

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
#!/usr/bin/perl

#############################################################################
# This script will create an extension build. Usually, this script          #
# shouldn't be run directly, use make_devbuild.pl instead.                  #
#############################################################################

use strict;
use warnings;
use lib qw(buildtools);
use Packager;

my %params = ();

my $xpiFile = shift @ARGV;
if (@ARGV && $ARGV[0] =~ /^\+/)
{
  $params{devbuild} = $ARGV[0];
  shift @ARGV;
}
else
{
  $params{postprocess_line} = \&removeTimeLine;
}

$params{locales} = \@ARGV if @ARGV;

my $pkg = Packager->new(\%params);
$pkg->readVersion('version');
$pkg->readBasename('chrome.manifest');
$pkg->readLocales('chrome/locale') unless exists $params{locales};
$pkg->readLocaleData('chrome/locale');

$xpiFile = "$pkg->{baseName}.xpi" unless $xpiFile;

chdir('chrome');
$pkg->makeJAR("$pkg->{baseName}.jar", 'content', 'skin', 'locale', '-/tests', '-/mochitest', '-/.incomplete', '-/meta.properties');
chdir('..');

my @files = grep {-e $_} ('components', <modules/*.jsm>, 'defaults', 'install.rdf', 'chrome.manifest', 'icon.png');
@files = grep {$_ ne "modules/TimeLine.jsm"} @files unless exists($params{devbuild});

$pkg->makeXPI($xpiFile, "chrome/$pkg->{baseName}.jar", @files);
unlink("chrome/$pkg->{baseName}.jar");

sub removeTimeLine
{
  my ($file, $line) = @_;

  return "\n" if $file =~ /\.jsm?$/ && $line =~ /\b[tT]imeLine\.(\w+)\(/;
  return "\n" if $file =~ /\.jsm?$/ && $line =~ /Cu\.import\([^()]*\bTimeLine\.jsm\"\)/;

  return $line;
}