better control logic.
prepare to du port dir.
This commit is contained in:
parent
d9dc61d57d
commit
d2abbd61aa
@ -1,5 +1,5 @@
|
||||
# ex:ts=8 sw=4:
|
||||
# $OpenBSD: Port.pm,v 1.5 2010/03/01 17:57:25 espie Exp $
|
||||
# $OpenBSD: Port.pm,v 1.6 2010/03/02 02:33:15 espie Exp $
|
||||
#
|
||||
# Copyright (c) 2010 Marc Espie <espie@openbsd.org>
|
||||
#
|
||||
@ -52,7 +52,7 @@ sub finalize
|
||||
$self->{ended} = time();
|
||||
DPB::Clock->unregister($self);
|
||||
$core->job->finished_task($self);
|
||||
return 1;
|
||||
return $core->{status} == 0;
|
||||
}
|
||||
|
||||
sub elapsed
|
||||
@ -67,6 +67,15 @@ sub stopped_clock
|
||||
$self->{started} += $gap;
|
||||
}
|
||||
|
||||
sub redirect
|
||||
{
|
||||
my ($self, $log) = @_;
|
||||
close STDOUT;
|
||||
close STDERR;
|
||||
open STDOUT, '>>', $log or die "Can't write to $log";
|
||||
open STDERR, '>&STDOUT' or die "bad redirect";
|
||||
}
|
||||
|
||||
sub run
|
||||
{
|
||||
my ($self, $core) = @_;
|
||||
@ -74,14 +83,10 @@ sub run
|
||||
my $t = $self->{phase};
|
||||
my $ports = $job->{builder}->{ports};
|
||||
my $fullpkgpath = $job->{v}->fullpkgpath;
|
||||
my $log = $job->{log};
|
||||
my $make = $job->{builder}->{make};
|
||||
my $sudo = OpenBSD::Paths->sudo;
|
||||
my $shell = $core->{shell};
|
||||
close STDOUT;
|
||||
close STDERR;
|
||||
open STDOUT, '>>', $log or die "Can't write to $log";
|
||||
open STDERR, '>&STDOUT' or die "bad redirect";
|
||||
$self->redirect($job->{log});
|
||||
my @args = ($t, "TRUST_PACKAGES=Yes",
|
||||
"REPORT_PROBLEM='exit 1'");
|
||||
if ($job->{special}) {
|
||||
@ -113,13 +118,45 @@ package DPB::Task::Port::NoTime;
|
||||
our @ISA = qw(DPB::Task::Port);
|
||||
sub notime { 1 }
|
||||
|
||||
package DPB::Task::Port::ShowSize;
|
||||
our @ISA = qw(DPB::Task::Port);
|
||||
|
||||
sub fork
|
||||
{
|
||||
my ($self, $core) = @_;
|
||||
open($self->{fh}, "-|");
|
||||
}
|
||||
|
||||
sub redirect
|
||||
{
|
||||
my ($self, $log) = @_;
|
||||
}
|
||||
|
||||
sub finalize
|
||||
{
|
||||
my ($self, $core) = @_;
|
||||
my $fh = $self->{fh};
|
||||
if ($core->{status} == 0) {
|
||||
my $line = <$fh>;
|
||||
$line = <$fh>;
|
||||
if ($line =~ m/^\s*(\d+)\s+/) {
|
||||
my $sz = $1;
|
||||
my $job = $core->job;
|
||||
my $f2 = $job->{builder}->{logger}->open("size");
|
||||
print $f2 $job->{v}->fullpkgpath, " $sz\n";
|
||||
}
|
||||
}
|
||||
close($fh);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
package DPB::Task::Port::Fetch;
|
||||
our @ISA = qw(DPB::Task::Port::NoTime);
|
||||
|
||||
sub finalize
|
||||
{
|
||||
my ($self, $core) = @_;
|
||||
$self->SUPER::finalize($core);
|
||||
|
||||
# if there's a watch file, then we remove the current size,
|
||||
# so that we DON'T take prepare into account.
|
||||
@ -130,7 +167,7 @@ sub finalize
|
||||
$job->{offset} = $sz;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
$self->SUPER::finalize($core);
|
||||
}
|
||||
|
||||
package DPB::Task::Port::Clean;
|
||||
@ -159,6 +196,7 @@ my $repo = {
|
||||
clean => 'DPB::Task::Port::Clean',
|
||||
prepare => 'DPB::Task::Port::NoTime',
|
||||
fetch => 'DPB::Task::Port::Fetch',
|
||||
'show-size' => 'DPB::Task::Port::ShowSize',
|
||||
};
|
||||
|
||||
sub create
|
||||
|
Loading…
Reference in New Issue
Block a user