don't fork for upgrade files
This commit is contained in:
parent
11d4cd0ef0
commit
fb6a78d39d
1 changed files with 15 additions and 20 deletions
|
|
@ -4,6 +4,7 @@ use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
|
||||||
use WebGUI::Upgrade;
|
use WebGUI::Upgrade;
|
||||||
|
use POSIX ();
|
||||||
|
|
||||||
sub _runCode {
|
sub _runCode {
|
||||||
eval sprintf <<'END_CODE', $_[0], $_[1];
|
eval sprintf <<'END_CODE', $_[0], $_[1];
|
||||||
|
|
@ -30,28 +31,22 @@ sub run {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
($configFile, $version, $file, $quiet) = @_;
|
($configFile, $version, $file, $quiet) = @_;
|
||||||
($session, $config, $dbh, $versionTag) = undef;
|
($session, $config, $dbh, $versionTag) = undef;
|
||||||
my $pid = fork;
|
open my $fh, '<', $file;
|
||||||
if (! $pid) {
|
my $contents = do { local $/; <$fh> };
|
||||||
open my $fh, '<', $file;
|
close $fh;
|
||||||
my $contents = do { local $/; <$fh> };
|
_runCode($file, $contents);
|
||||||
close $fh;
|
my $error = $@;
|
||||||
_runCode($file, $contents);
|
if ($session) {
|
||||||
if ($session) {
|
require WebGUI::VersionTag;
|
||||||
require WebGUI::VersionTag;
|
if (WebGUI::VersionTag->getWorking($session, 'nocreate')) {
|
||||||
if (WebGUI::VersionTag->getWorking($session, 'nocreate')) {
|
version_tag()->commit;
|
||||||
version_tag()->commit;
|
|
||||||
}
|
|
||||||
$session->var->end;
|
|
||||||
$session->close;
|
|
||||||
}
|
}
|
||||||
die $@
|
$session->var->end;
|
||||||
if $@;
|
$session->close;
|
||||||
exit;
|
|
||||||
}
|
|
||||||
waitpid $pid, 0;
|
|
||||||
if ($?) {
|
|
||||||
die "Error processing $file\n";
|
|
||||||
}
|
}
|
||||||
|
die $error
|
||||||
|
if $error;
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub report {
|
sub report {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue