[Pkg-mozext-commits] [adblock-plus] 93/464: Take extension metadata from a centralized "metadata" file and generate install.rdf automatically
David Prévot
taffit at moszumanska.debian.org
Tue Jul 22 20:44:06 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository adblock-plus.
commit 0c4ea714256674577288a2a4fadaad81757df92c
Author: Wladimir Palant <trev at adblockplus.org>
Date: Tue Oct 19 16:48:53 2010 +0200
Take extension metadata from a centralized "metadata" file and generate install.rdf automatically
---
Packager.pm | 324 +++++++++++++++++++++++++++++++++--------------
create_xpi.pl | 16 +--
make_babelzilla_build.pl | 35 ++---
make_devbuild.pl | 5 +-
make_release.pl | 33 +++--
setupTestEnvironment.pl | 20 +--
6 files changed, 276 insertions(+), 157 deletions(-)
diff --git a/Packager.pm b/Packager.pm
index 329fbef..4e0aadd 100644
--- a/Packager.pm
+++ b/Packager.pm
@@ -3,6 +3,20 @@ package Packager;
use strict;
use warnings;
+my %apps =
+(
+ conkeror => '{a79fe89b-6662-4ff4-8e88-09950ad4dfde}',
+ emusic => 'dlm at emusic.com',
+ fennec => '{a23983c0-fd0e-11dc-95ff-0800200c9a66}',
+ firefox => '{ec8030f7-c20a-464f-9b0e-13a3a9e97384}',
+ midbrowser => '{aa5ca914-c309-495d-91cf-3141bbb04115}',
+ prism => 'prism at developer.mozilla.org',
+ seamonkey => '{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}',
+ songbird => 'songbird at songbirdnest.com',
+ thunderbird => '{3550f703-e582-4d05-9a08-453d09bdfdc6}',
+ toolkit => 'toolkit at mozilla.org',
+);
+
sub new
{
my ($class, $params) = @_;
@@ -18,13 +32,55 @@ sub new
return $self;
}
-sub readVersion
+sub readMetadata
{
- my ($self, $versionFile) = @_;
+ my ($self, $metadataFile) = @_;
+
+ my $data = $self->readFile($metadataFile);
+ die "Could not read metadata file $metadataFile" unless defined $data;
- open(local *FILE, $versionFile) or die "Could not open version file $versionFile";
- $self->{version} = <FILE>;
- $self->{version} =~ s/[^\w\.]//gs;
+ $self->{settings} = {};
+ my $curSection;
+ my %lists = map {$_ => 1} qw(contributor);
+ foreach my $line (split(/[\r\n]+/, $data))
+ {
+ $line =~ s/#.*//;
+ $line =~ s/^\s+//;
+ $line =~ s/\s+$//;
+ next unless length($line);
+
+ if ($line =~ /^\[(.*)\]$/)
+ {
+ $curSection = $1;
+ }
+ elsif ($line =~ /(.+)=(.*)/)
+ {
+ if (defined $curSection)
+ {
+ $self->{settings}{$curSection} = {} unless exists $self->{settings}{$curSection};
+ if (exists($lists{$1}))
+ {
+ $self->{settings}{$curSection}{$1} = [] unless exists $self->{settings}{$curSection}{$1};
+ push @{$self->{settings}{$curSection}{$1}}, $2;
+ }
+ else
+ {
+ $self->{settings}{$curSection}{$1} = $2;
+ }
+ }
+ else
+ {
+ warn "Setting outside section in metadata file: $line";
+ }
+ }
+ else
+ {
+ warn "Unrecognized line in metadata file: $line";
+ }
+ }
+
+ warn "Version not set in metadata file" unless exists($self->{settings}{general}{version});
+ $self->{version} = $self->{settings}{general}{version};
if (exists $self->{devbuild})
{
unless ($self->{version} =~ /\D$/)
@@ -34,18 +90,6 @@ sub readVersion
}
$self->{version} .= "." . $self->{devbuild};
}
- close(FILE);
-}
-
-sub readBasename
-{
- my ($self, $manifestFile) = @_;
-
- my $data = $self->readFile($manifestFile);
- die "Could not open manifest file $manifestFile" unless defined $data;
- die "Could not find JAR file name in $manifestFile" unless $data =~ /\bjar:chrome\/(\S+?)\.jar\b/;
-
- $self->{baseName} = $1;
}
sub readLocales
@@ -63,7 +107,7 @@ sub readLocales
sub readLocaleData
{
- my ($self, $localesDir, $installManifestFile) = @_;
+ my ($self, $localesDir) = @_;
$self->{localeData} = {};
$self->{name} = '';
@@ -90,77 +134,30 @@ sub readLocaleData
{
$self->{name} = $self->{localeData}{"en-US"}{name} if exists($self->{localeData}{"en-US"}{name});
$self->{description} = $self->{localeData}{"en-US"}{description} if exists($self->{localeData}{"en-US"}{description});
- $self->{homepage} = $self->{localeData}{"en-US"}{homepage} if exists($self->{localeData}{"en-US"}{homepage});
}
+ $self->{homepage} = $self->{settings}{homepage}{default};
+ $self->{author} = $self->{settings}{general}{author};
- # HACK: Read author name from install manifest
- if (defined($installManifestFile))
+ # Fix up locale data if missing
+ foreach my $locale (values %{$self->{localeData}})
{
- my $installRDF = $self->readFile($installManifestFile);
- $self->{author} = $1 if $installRDF && $installRDF =~ /<em:creator>\s*([^<>]+?)\s*<\/em:creator>/;
- }
+ $locale->{name} = $self->{name} unless exists($locale->{name}) && $locale->{name};
+ $locale->{description} = $self->{description} unless exists($locale->{description}) && $locale->{description};
- my $info = "";
- my %translators = ();
- foreach my $locale (sort {$a->{id} cmp $b->{id}} values %{$self->{localeData}})
- {
- if (exists($locale->{translator}))
+ if (exists($self->{settings}{homepage}{$locale->{id}}))
{
- foreach my $translator (split(/,/, $locale->{translator}))
- {
- $translator =~ s/^\s+//g;
- $translator =~ s/\s+$//g;
- $translators{$translator} = 1 if $translator ne "";
- }
+ $locale->{homepage} = $self->{settings}{homepage}{$locale->{id}};
}
- $locale->{name} = $self->{name} unless exists($locale->{name}) && $locale->{name} && $locale->{name} ne $self->{name};
- $locale->{description} = $self->{description} unless exists($locale->{description}) && $locale->{description} && $locale->{description} ne $self->{description};
- $locale->{homepage} = $self->{homepage} unless exists($locale->{homepage}) && $locale->{homepage} && $locale->{homepage} ne $self->{homepage};
-
- my $id = $self->encodeXML($locale->{id});
- my $name = $self->encodeXML($locale->{name});
- my $description = $self->encodeXML($locale->{description});
- my $homepage = $self->encodeXML($locale->{homepage});
-
- # Duplicate author in each locale to work around bug 416350
- my $author = $self->encodeXML($self->{author});
-
- $info .= <<EOT;
-\t<em:localized>
-\t\t<Description>
-\t\t\t<em:locale>$id</em:locale>
-\t\t\t<em:name>$name</em:name>
-\t\t\t<em:description>$description</em:description>
-\t\t\t<em:creator>$author</em:creator>
-\t\t\t<em:homepageURL>$homepage</em:homepageURL>
-\t\t</Description>
-\t</em:localized>
-EOT
- }
-
- $info .= "\n";
-
- foreach my $translator (sort keys %translators)
- {
- $translator = $self->encodeXML($translator);
- $info .= <<EOT;
-\t<em:translator>$translator</em:translator>
-EOT
+ elsif ($locale->{id} =~ /^(\w+)/ && exists($self->{settings}{homepage}{$1}))
+ {
+ $locale->{homepage} = $self->{settings}{homepage}{$1};
+ }
+ else
+ {
+ $locale->{homepage} = $self->{settings}{homepage}{default};
+ }
+ warn "Failed to get homepage for $locale->{id}" unless $locale->{homepage};
}
-
- $self->{localizedInfo} = $info;
-}
-
-sub readNameFromManifest
-{
- my ($self, $installManifestFile) = @_;
-
- my $installRDF = $self->readFile($installManifestFile);
- return unless $installRDF;
-
- $installRDF =~ s/<em:(requires|targetApplication)>.*?<\/em:\1>//gs;
-
- $self->{name} = $1 if $installRDF =~ /<em:name>\s*([^<>]+?)\s*<\/em:name>/;
}
sub rm_rec
@@ -212,10 +209,6 @@ sub cp
s/^((?: )+)/"\t" x (length($1)\/2)/e;
s/\{\{VERSION\}\}/$self->{version}/g if $extendedTextMode;
s/\{\{BUILD\}\}/$self->{build}/g if $extendedTextMode;
- s/\{\{NAME\}\}/$self->{name}/g if $extendedTextMode;
- s/\{\{DESCRIPTION\}\}/$self->{description}/g if $extendedTextMode;
- s/\{\{HOMEPAGE\}\}/$self->{homepage}/g if $extendedTextMode;
- s/\{\{LOCALIZED\}\}/$self->{localizedInfo}/g if $extendedTextMode;
if ($extendedTextMode && /\{\{LOCALE\}\}/)
{
my $loc = "";
@@ -228,11 +221,6 @@ sub cp
$_ = $loc;
}
- if ($self->{devbuild} && $fromFile =~ /\binstall\.rdf$/ && /^(\s*)<em:version>/)
- {
- $_ .= "$1<em:updateURL><![CDATA[https://adblockplus.org/devbuilds/update.rdf?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%]]></em:updateURL>\n";
- }
-
$_ = $self->{postprocess_line}->($fromFile, $_) if exists $self->{postprocess_line};
$_;
@@ -362,6 +350,155 @@ sub fixZipPermissions
unlink $fileName if $invalid;
}
+sub writeManifest
+{
+ my ($self, $manifestFile) = @_;
+
+ my $id = $self->encodeXML($self->{settings}{general}{id});
+ my $version = $self->encodeXML($self->{version});
+ my $name = $self->encodeXML($self->{name});
+ my $description = $self->encodeXML($self->{description});
+ my $author = $self->encodeXML($self->{author});
+ my $homepage = $self->encodeXML($self->{homepage});
+
+ open(local *FILE, '>', $manifestFile) or die "Failed to write manifest file $manifestFile";
+ binmode(FILE);
+ print FILE <<"EOT";
+<?xml version="1.0"?>
+
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+\t\txmlns:em="http://www.mozilla.org/2004/em-rdf#">
+
+\t<Description about="urn:mozilla:install-manifest">
+
+\t\t<em:id>$id</em:id>
+\t\t<em:version>$version</em:version>
+\t\t<em:name>$name</em:name>
+\t\t<em:description>$description</em:description>
+\t\t<em:creator>$author</em:creator>
+\t\t<em:homepageURL>$homepage</em:homepageURL>
+\t\t<em:type>2</em:type>
+EOT
+
+ if ($self->{devbuild})
+ {
+ print FILE <<"EOT";
+\t\t<em:updateURL><![CDATA[https://adblockplus.org/devbuilds/update.rdf?baseName=$self->{settings}{general}{basename}&reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%]]></em:updateURL>
+EOT
+ }
+
+ if (exists($self->{settings}{general}{icon}))
+ {
+ my $icon = $self->encodeXML($self->{settings}{general}{icon});
+ print FILE <<"EOT";
+\t\t<em:iconURL>$icon</em:iconURL>
+EOT
+ }
+ if (exists($self->{settings}{general}{about}))
+ {
+ my $about = $self->encodeXML($self->{settings}{general}{about});
+ print FILE <<"EOT";
+\t\t<em:aboutURL>$about</em:aboutURL>
+EOT
+ }
+ if (exists($self->{settings}{general}{options}))
+ {
+ my $options = $self->encodeXML($self->{settings}{general}{options});
+ print FILE <<"EOT";
+\t\t<em:optionsURL>$options</em:optionsURL>
+EOT
+ }
+
+ print FILE "\n";
+
+ if (exists($self->{settings}{general}{contributor}))
+ {
+ foreach my $contributor (map {$self->encodeXML($_)} @{$self->{settings}{general}{contributor}})
+ {
+ print FILE <<"EOT";
+\t\t<em:contributor>$contributor</em:contributor>
+EOT
+ }
+ print FILE "\n";
+ }
+
+ my %translators = ();
+ foreach my $locale (values %{$self->{localeData}})
+ {
+ if (exists($locale->{translator}))
+ {
+ foreach my $translator (split(/,/, $locale->{translator}))
+ {
+ $translator =~ s/^\s+//g;
+ $translator =~ s/\s+$//g;
+ $translators{$translator} = 1 if $translator ne "";
+ }
+ }
+ }
+ foreach my $translator (sort keys %translators)
+ {
+ $translator = $self->encodeXML($translator);
+ print FILE <<"EOT";
+\t\t<em:translator>$translator</em:translator>
+EOT
+ }
+ print FILE "\n";
+
+ foreach my $locale (sort {$a->{id} cmp $b->{id}} values %{$self->{localeData}})
+ {
+ my $id = $self->encodeXML($locale->{id});
+ my $name = $self->encodeXML($locale->{name});
+ my $description = $self->encodeXML($locale->{description});
+ my $homepage = $self->encodeXML($locale->{homepage});
+
+ # Duplicate author in each locale to work around bug 416350
+ my $author = $self->encodeXML($self->{author});
+
+ print FILE <<"EOT";
+\t\t<em:localized>
+\t\t\t<Description>
+\t\t\t\t<em:locale>$id</em:locale>
+\t\t\t\t<em:name>$name</em:name>
+\t\t\t\t<em:description>$description</em:description>
+\t\t\t\t<em:creator>$author</em:creator>
+\t\t\t\t<em:homepageURL>$homepage</em:homepageURL>
+\t\t\t</Description>
+\t\t</em:localized>
+EOT
+ }
+ print FILE "\n";
+
+ foreach my $app (sort keys %{$self->{settings}{compat}})
+ {
+ if (!exists($apps{$app}))
+ {
+ warn "Unrecognized application in manifest: $app";
+ next;
+ }
+
+ my $id = $self->encodeXML($apps{$app});
+ my ($min, $max) = map {$self->encodeXML($_)} split(/\//, $self->{settings}{compat}{$app});
+
+ print FILE <<"EOT";
+\t\t<em:targetApplication>
+\t\t\t<Description>
+\t\t\t\t<!-- $app -->
+\t\t\t\t<em:id>$id</em:id>
+\t\t\t\t<em:minVersion>$min</em:minVersion>
+\t\t\t\t<em:maxVersion>$max</em:maxVersion>
+\t\t\t</Description>
+\t\t</em:targetApplication>
+EOT
+ }
+
+ print FILE <<"EOT";
+\t</Description>
+</RDF>
+EOT
+
+ close(FILE);
+}
+
sub makeJAR
{
my ($self, $jarFile, @files) = @_;
@@ -460,7 +597,7 @@ my $S = qr/[\x20\x09\x0D\x0A]/;
my $Name = qr/[A-Za-z_:][\w.\-:]*/;
my $Reference = qr/&$Name;|&#\d+;|&#x[\da-fA-F]+;/;
my $PEReference = qr/%$Name;/;
-my $EntityValue = qr/"(?:[^%&"]|$PEReference|$Reference)*"|'(?:[^%&']|$PEReference|$Reference)*'/;
+my $EntityValue = qr/"(?:[^%&"]|$PEReference|$Reference)*"|'(?:[^%&']|$PEReference|$Reference)*'/; #"
sub fixDTDFile
{
@@ -551,6 +688,9 @@ sub makeXPI
}
}
+ $self->writeManifest('tmp/install.rdf');
+ push @files, 'install.rdf';
+
if (-f '.signature')
{
my $signData = $self->readFile(".signature");
diff --git a/create_xpi.pl b/create_xpi.pl
index f13e544..50851c0 100644
--- a/create_xpi.pl
+++ b/create_xpi.pl
@@ -26,22 +26,22 @@ else
$params{locales} = \@ARGV if @ARGV;
my $pkg = Packager->new(\%params);
-$pkg->readVersion('version');
-$pkg->readBasename('chrome.manifest');
+$pkg->readMetadata('metadata');
$pkg->readLocales('chrome/locale') unless exists $params{locales};
-$pkg->readLocaleData('chrome/locale', 'install.rdf');
+$pkg->readLocaleData('chrome/locale');
-$xpiFile = "$pkg->{baseName}.xpi" unless $xpiFile;
+my $baseName = $pkg->{settings}{general}{basename};
+$xpiFile = "$baseName.xpi" unless $xpiFile;
chdir('chrome');
-$pkg->makeJAR("$pkg->{baseName}.jar", 'content', 'skin', 'locale', '-/tests', '-/mochitest', '-/.incomplete', '-/meta.properties');
+$pkg->makeJAR("$baseName.jar", 'content', 'skin', 'locale', '-/tests', '-/mochitest', '-/.incomplete', '-/meta.properties');
chdir('..');
-my @files = grep {-e $_} ('components', <modules/*.jsm>, 'defaults', 'install.rdf', 'bootstrap.js', 'chrome.manifest', 'icon.png');
+my @files = grep {-e $_} ('components', <modules/*.jsm>, 'defaults', 'bootstrap.js', '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");
+$pkg->makeXPI($xpiFile, "chrome/$baseName.jar", @files);
+unlink("chrome/$baseName.jar");
sub removeTimeLine
{
diff --git a/make_babelzilla_build.pl b/make_babelzilla_build.pl
index cbf53f8..310fca5 100644
--- a/make_babelzilla_build.pl
+++ b/make_babelzilla_build.pl
@@ -18,12 +18,16 @@ my ($sec, $min, $hour, $day, $mon, $year) = localtime;
$params{devbuild} = sprintf("%04i%02i%02i", $year+1900, $mon+1, $day);
my $pkg = Packager->new(\%params);
-$pkg->readBasename('chrome.manifest');
-$pkg->readVersion('version');
+$pkg->readMetadata('metadata');
$pkg->readLocales('chrome/locale', 1);
-$pkg->readLocaleData('chrome/locale', 'install.rdf');
+$pkg->readLocaleData('chrome/locale');
-my $baseName = $pkg->{baseName};
+foreach my $app (keys %{$pkg->{settings}{compat}})
+{
+ delete $pkg->{settings}{compat}{$app} unless $app eq 'firefox' || $app eq 'thunderbird' || $app eq 'seamonkey'
+}
+
+my $baseName = $pkg->{settings}{general}{basename};
my $version = $pkg->{version};
my $xpiFile = "$baseName-$version.xpi";
@@ -31,28 +35,7 @@ chdir('chrome');
$pkg->makeJAR("$baseName.jar", 'content', 'skin', 'locale', '-/tests', '-/mochitest', '-/.incomplete');
chdir('..');
-my @files = grep {-e $_} ('components', <modules/*.jsm>, 'defaults', 'install.rdf', 'bootstrap.js', 'chrome.manifest', 'icon.png');
+my @files = grep {-e $_} ('components', <modules/*.jsm>, 'defaults', 'bootstrap.js', 'chrome.manifest', 'icon.png');
-my $targetAppNum = 0;
-$pkg->{postprocess_line} = \&postprocessInstallRDF;
$pkg->makeXPI($xpiFile, "chrome/$baseName.jar", @files);
unlink("chrome/$baseName.jar");
-
-sub postprocessInstallRDF
-{
- my ($file, $line) = @_;
-
- return $line unless $file eq "install.rdf";
-
- if ($line =~ /\btargetApplication\b/)
- {
- $targetAppNum++;
- return "" if $targetAppNum > 6;
- }
-
- return "" if $targetAppNum > 6 && $targetAppNum % 2 == 1;
-
- return "" if $line =~ /\blocalized\b/;
-
- return $line;
-}
diff --git a/make_devbuild.pl b/make_devbuild.pl
index 36db198..f17ee6a 100644
--- a/make_devbuild.pl
+++ b/make_devbuild.pl
@@ -25,10 +25,9 @@ use lib qw(buildtools);
use Packager;
my $pkg = Packager->new();
-$pkg->readBasename('chrome.manifest');
-$pkg->readVersion('version');
+$pkg->readMetadata('metadata');
-my $baseName = $pkg->{baseName};
+my $baseName = $pkg->{settings}{general}{basename};
my $version = $pkg->{version};
unless ($version =~ /\D$/)
diff --git a/make_release.pl b/make_release.pl
index b9b628f..d944635 100644
--- a/make_release.pl
+++ b/make_release.pl
@@ -10,17 +10,14 @@ use strict;
use lib qw(buildtools);
use Packager;
-our $BRANCH_NAME;
-
-die "This script cannot be called directly, please call the script for a particular extension" unless $BRANCH_NAME;
-
my $pkg = Packager->new({locales => ['en-US']});
-$pkg->readBasename('chrome.manifest');
-$pkg->readLocaleData('chrome/locale', 'install.rdf');
-$pkg->readNameFromManifest('install.rdf') unless $pkg->{name};
+$pkg->readMetadata('metadata');
+$pkg->readLocaleData('chrome/locale');
die "Could not extract extension name" unless $pkg->{name};
-my $baseName = $pkg->{baseName};
+die "Branch name not defined in metadata file" unless exists($pkg->{settings}{general}{branchname});
+
+my $baseName = $pkg->{settings}{general}{basename};
my $extensionName = $pkg->{name};
die "Version number not specified" unless @ARGV;
@@ -30,11 +27,21 @@ $version =~ s/[^\w\.]//gs;
my $branch = $version;
$branch =~ s/\./_/g;
-$branch = $BRANCH_NAME."_".$branch."_RELEASE";
-
-open(VERSION, ">version");
-print VERSION "$ARGV[0]\n";
-close(VERSION);
+$branch = $pkg->{settings}{general}{branchname}."_".$branch."_RELEASE";
+
+open(local *OLD, '<', 'metadata');
+open(local *NEW, '>', 'metadata_new');
+binmode(OLD);
+binmode(NEW);
+while (<OLD>)
+{
+ s/^(\s*version\s*=\s*).*/$1$ARGV[0]/;
+ print NEW $_;
+}
+close(NEW);
+close(OLD);
+unlink('metadata');
+rename('metadata_new', 'metadata');
system(qq(hg commit -m "Releasing $extensionName $version"));
system(qq(hg tag $branch));
diff --git a/setupTestEnvironment.pl b/setupTestEnvironment.pl
index fb2f3f1..4566645 100644
--- a/setupTestEnvironment.pl
+++ b/setupTestEnvironment.pl
@@ -24,23 +24,15 @@ use lib qw(buildtools);
use Packager;
my $pkg = Packager->new();
-$pkg->readVersion('version');
+$pkg->readMetadata('metadata');
$pkg->readLocales('chrome/locale');
-$pkg->readLocaleData('chrome/locale', 'install.rdf');
+$pkg->readLocaleData('chrome/locale');
my @files = ();
-my $installManifest = fixupFile(readFile("install.rdf"));
-push @files, ["install.rdf", $installManifest];
-
push @files, ["bootstrap.js", readFile("bootstrap.js")] if -f "bootstrap.js";
push @files, ["icon.png", readFile("icon.png")] if -f "icon.png";
-my $cleanManifest = $installManifest;
-$cleanManifest =~ s/<(\w+:)?targetApplication>.*?<\/\1targetApplication>//gs;
-$cleanManifest =~ s/<(\w+:)?requires>.*?<\/\1requires>//gs;
-
-die "Failed to extract extension ID from install manifest" unless $cleanManifest =~ /<(\w+:)?id>([^<>]+)<\/\1id>/;
-my $id = $2;
+my $id = $pkg->{settings}{general}{id};
my $chromeManifest = fixupFile(readFile("chrome.manifest"));
my $baseURL = cwd;
@@ -112,6 +104,8 @@ foreach my $dir (@dirs)
writeFile("$baseDir/$filename", $content);
}
+
+ $pkg->writeManifest("$baseDir/install.rdf");
}
sub readFile
@@ -143,10 +137,6 @@ sub fixupFile
$str =~ s/{{VERSION}}/$pkg->{version}/g;
$str =~ s/{{BUILD}}//g;
- $str =~ s/{{NAME}}/$pkg->{name}/g;
- $str =~ s/{{DESCRIPTION}}/$pkg->{description}/g;
- $str =~ s/{{HOMEPAGE}}/$pkg->{homepage}/g;
- $str =~ s/{{LOCALIZED}}/$pkg->{localizedInfo}/g;
$str =~ s/^.*{{LOCALE}}.*$/
my @result = ();
my $template = $&;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git
More information about the Pkg-mozext-commits
mailing list