зеркало из https://github.com/mozilla/pjs.git
Revert bug 289461 until I can examine bustage.
This commit is contained in:
Родитель
9fd487ad31
Коммит
04b942d088
|
@ -31,7 +31,6 @@ use Time::localtime;
|
|||
use File::Copy;
|
||||
use File::Path;
|
||||
use File::Spec;
|
||||
use File::Basename;
|
||||
use IO::File;
|
||||
use Config;
|
||||
require mozLock;
|
||||
|
@ -295,44 +294,6 @@ sub _moz_abs2rel
|
|||
return File::Spec->abs2rel($target, $linkname);
|
||||
}
|
||||
|
||||
sub UniqIt
|
||||
{
|
||||
my $manifest = shift;
|
||||
|
||||
return if (scalar(@_) == 0); # no entries, don't bother
|
||||
|
||||
my %lines = map { $_ => 1 } @_;
|
||||
|
||||
my $lockfile = "$manifest.lck";
|
||||
print "+++ updating chrome $manifest\n";
|
||||
|
||||
my $dir = dirname($manifest);
|
||||
mkpath($dir, 0, 0755);
|
||||
|
||||
mozLock($lockfile) if (!$nofilelocks);
|
||||
open(FILE, "+>>$manifest") or my $err = 1;
|
||||
if ($err) {
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
die "error: can't open $manifest: $!";
|
||||
};
|
||||
|
||||
# Read through the file: if the lines already exist, no need to write
|
||||
# them again.
|
||||
while (<FILE>) {
|
||||
chomp;
|
||||
print "Found line '$_'\n";
|
||||
delete $lines{$_};
|
||||
}
|
||||
|
||||
print FILE map("$_\n", keys(%lines));
|
||||
close(FILE) or $err = 1;
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
|
||||
if ($err) {
|
||||
die "error: can't close $manifest: $!";
|
||||
}
|
||||
}
|
||||
|
||||
sub RegIt
|
||||
{
|
||||
my ($chromeDir, $jarFileName, $chromeType, $pkgName) = @_;\
|
||||
|
@ -346,7 +307,58 @@ sub RegIt
|
|||
$line = "$chromeType,install,url,jar:resource:/chrome/$jarFileName.jar!/$chromeType/$pkgName/";
|
||||
}
|
||||
my $installedChromeFile = "$chromeDir/installed-chrome.txt";
|
||||
UniqIt($installedChromeFile, $line);
|
||||
my $lockfile = "$installedChromeFile.lck";
|
||||
mozLock($lockfile) if (!$nofilelocks);
|
||||
my $err = 0;
|
||||
if (open(FILE, "<$installedChromeFile")) {
|
||||
while (<FILE>) {
|
||||
chomp;
|
||||
if ($_ eq $line) {
|
||||
# line already appears in installed-chrome.txt file
|
||||
# just update the mod date
|
||||
close(FILE) or $err = 1;
|
||||
if ($err) {
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
die "error: can't close $installedChromeFile: $!";
|
||||
}
|
||||
my $now = time;
|
||||
utime($now, $now, $installedChromeFile) or $err = 1;
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
if ($err) {
|
||||
die "couldn't touch $installedChromeFile";
|
||||
}
|
||||
print "+++ updating chrome $installedChromeFile\n+++\t$line\n";
|
||||
return;
|
||||
}
|
||||
}
|
||||
close(FILE) or $err = 1;
|
||||
if ($err) {
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
die "error: can't close $installedChromeFile: $!";
|
||||
}
|
||||
}
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
|
||||
my $dir = $installedChromeFile;
|
||||
if ("$dir" =~ /([\w\d.\-\\\/\+]+)[\\\/]([\w\d.\-]+)/) {
|
||||
$dir = $1;
|
||||
}
|
||||
mkpath($dir, 0, 0755);
|
||||
|
||||
mozLock($lockfile) if (!$nofilelocks);
|
||||
$err = 0;
|
||||
open(FILE, ">>$installedChromeFile") or $err = 1;
|
||||
if ($err) {
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
die "can't open $installedChromeFile: $!";
|
||||
}
|
||||
print FILE "$line\n";
|
||||
close(FILE) or $err = 1;
|
||||
mozUnlock($lockfile) if (!$nofilelocks);
|
||||
if ($err) {
|
||||
die "error: can't close $installedChromeFile: $!";
|
||||
}
|
||||
print "+++ adding chrome $installedChromeFile\n+++\t$line\n";
|
||||
}
|
||||
|
||||
sub EnsureFileInDir
|
||||
|
@ -480,8 +492,6 @@ start:
|
|||
my $args = "";
|
||||
my $overrides = "";
|
||||
my $cwd = cwd();
|
||||
my @manifestLines;
|
||||
|
||||
print "+++ making chrome $cwd => $chromeDir/$jarfile.jar\n";
|
||||
while (defined($_ = shift @gLines)) {
|
||||
if (/^\s+([\w\d.\-\_\\\/\+]+)\s*(\(\%?[\w\d.\-\_\\\/]+\))?$\s*/) {
|
||||
|
@ -519,26 +529,14 @@ start:
|
|||
my $pkg_name = $2;
|
||||
RegIt($chromeDir, $jarfile, $chrome_type, $pkg_name);
|
||||
}
|
||||
} elsif (/^\%\s+(.*)$/) {
|
||||
my $path = $1;
|
||||
|
||||
if ($fileformat eq "flat" || $fileformat eq "symlink") {
|
||||
$path =~ s|\%|$jarfile/$0|;
|
||||
} else {
|
||||
$path =~ s|\%|jar:$jarfile.jar!/$1|;
|
||||
}
|
||||
|
||||
push @manifestLines, $path;
|
||||
} elsif (/^\s*/) {
|
||||
} elsif (/^\s*$/) {
|
||||
# end with blank line
|
||||
last;
|
||||
} else {
|
||||
UniqIt("$chromeDir/$jarfile.manifest", @manifestLines);
|
||||
JarIt($chromeDir, $jarfile, $args, $overrides);
|
||||
goto start;
|
||||
}
|
||||
}
|
||||
UniqIt("$chromeDir/$jarfile.manifest", @manifestLines);
|
||||
JarIt($chromeDir, $jarfile, $args, $overrides);
|
||||
|
||||
} elsif (/^\s*\#.*$/) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче